当前位置:   article > 正文

【移动端】企业微信移动app测试实战_企业微信 工作台 应用 性能测试

企业微信 工作台 应用 性能测试

Menu:企业微信移动app测试实战(1)

adb devices								 #查看连接的手机设备
adb shell								 #进到手机系统
adb logcat								 #能够抓取到崩溃日志
adb shell dumpsys window|grep mCurrent   #获取当前页面的包名和activity name
adb logcat |grep -i displayed   		 #获取 app入口 packagename 和activityname	#启动应用前经过的欢迎页、广告才进入首页
										 # -i 表示忽略大小写
adb logcat |grep -i 'activitymanager'    #也可以获取 app入口的包名和页面名,有的时候使用上面的命令拿不到启动页面的名称,可以使用这个命令,此命令windows上 通过git bash来运行
aapt dump badging mobike.apk  | grep launchable-activity   #分析 apk包 获取包名和启动页名
adb install path/to/apk文件 			 #安装apk文件

#appium caps配置		#等待idle 设置时间为0 ,默认是等待10s ,设定完成后完成提速
caps['settings[waitForIdleTimeout]'] = 0

#windows:
将上面的命令中 grep 换成 findstr

#通过命令行方式来验证获取的包名和启动页名称是否正确
启动应用: 	
	#该命令行通过appium server获取得到
	adb shell am start -W -n <package-name> <activity-name> -S  				#命令行方式启动应用,通过这种方式来验证包名和启动页名字是否正确
	#adb shell am start -W -n com.tencent.wework/.launch.LaunchSplashActivity
	
	
企业微信实战1-企业微信自动打卡
打卡用例
	前提条件:
		已登录状态(noRest=True)
	打卡用例:
		1.打开【企业微信】应用
		2.等待直到进入主页
		3.点击下方导航栏中的【工作台】进入到工作台界面
		4.在页面上查找【打卡】标签,点击打卡,进入到打卡页面
		5.切换到【外出打卡】tap
		6.点击【第X次外出】,验证外出打卡成功
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34

实现滑动效果
1.touch_action , 根据手机屏幕宽度、高度 来滑动一定位置
2.移动端xml文件 滚动查找元素

移动端xml文件 滚动查找元素

 # 滚动查找 "打卡" 元素
        self.driver.find_element(
            MobileBy.ANDROID_UIAUTOMATOR,'new UiScrollable'
                                         '(new UiSelector().'
                                         'scrollable(true).'
                                         'instance(0)).'
                                         'scrollIntoView('
                                         'new UiSelector().'
                                         'text("打卡").instance(0));').click()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
"""
企业微信实战1-企业微信自动打卡
打卡用例
	前提条件:
		已登录状态(noRest=True)
	打卡用例:
		1.打开【企业微信】应用
		2.等待直到进入主页
		3.点击下方导航栏中的【工作台】进入到工作台界面
		4.在页面上查找【打卡】标签,点击打卡,进入到打卡页面
		5.切换到【外出打卡】tap
		6.点击【第X次外出】,验证外出打卡成功
"""
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# This sample code uses the Appium python client
# pip install Appium-Python-Client
# Then you can paste this into a file and simply run with Python
# appium-python-client  客户端脚本
from appium import webdriver
from appium.webdriver.common.mobileby import MobileBy

"""
改造1:pytest
"""

class TestWeChat:

    def setup(self):
        caps = {}
        caps["platformName"] = "android"
        caps["deviceName"] = "emulator-5554"
        caps["appPackage"] = "com.tencent.wework"
        caps["appActivity"] = ".launch.LaunchSplashActivity"
        caps["noReset"] = "true"
        caps["noReset"] = "true"
        caps['skipServerInstallation'] = 'true'  # 跳过 uiautomator2 server的安装
        caps['skipDeviceInitialization'] = 'true'    # 跳过设备初始化
        # caps['dontStopAppOnReset'] = 'true'    # 启动之前不停止app
        caps['settings[waitForIdleTimeout]'] = 0

        # 与server 建立连接,初始化一个driver 创建session,返回一个sessionid
        self.driver = webdriver.Remote("http://localhost:4723/wd/hub", caps)
        self.driver.implicitly_wait(10)

    """打卡功能
    """
    def test_daka(self):
        # 步骤1:点击工作台
        # el1 = self.driver.find_element_by_xpath("/hierarchy/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.LinearLayout/android.view.ViewGroup/android.widget.RelativeLayout[3]/android.widget.TextView")
        el1 = self.driver.find_element(MobileBy.XPATH,
                                       "//*[@text='工作台']")
        el1.click()
        # 滚动查找 "打卡" 元素
        self.driver.find_element(
            MobileBy.ANDROID_UIAUTOMATOR,'new UiScrollable'
                                         '(new UiSelector().'
                                         'scrollable(true).'
                                         'instance(0)).'
                                         'scrollIntoView('
                                         'new UiSelector().'
                                         'text("打卡").instance(0));').click()
        # el2 = self.driver.find_element_by_xpath("/hierarchy/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.FrameLayout[2]/android.widget.RelativeLayout/android.view.ViewGroup/android.support.v7.widget.RecyclerView/android.widget.RelativeLayout[10]/android.widget.LinearLayout/android.widget.TextView")
        # el3 = self.driver.find_element_by_id("com.tencent.wework:id/gcx")
        # 点击"外出打卡"
        el3 = self.driver.find_element(MobileBy.ID, "com.tencent.wework:id/gcx")
        el3.click()

        # 点击第N次外出打卡
        self.driver.find_element(MobileBy.XPATH,
                                 "//*[contains(@text, '次外出')]").click()

        # 验证打卡成功
        result = self.driver.find_element(MobileBy.ID,
                                 'com.tencent.wework:id/mk').text
        assert '打卡成功' in result

    def teardown(self):
        # 消毁session
        self.driver.quit()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
是否在每个测试步骤都需要加上断言?
	1、测试用例编写过程中的中间步骤,执行过程当中一般不需要加断言,除非中间操作过程当中要加入一些数据的验证,toast验证,等等。
	2、最后的一行代码,要加入断言作为验证这条用例的真正结果。
  • 1
  • 2
  • 3
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/291807
推荐阅读
相关标签
  

闽ICP备14008679号