网站首页 > 技术教程 正文
扼要:
1、了解python+appium进行APP的自动化测试实例;
2、能根据实例进行实训操作;
本课程主要讲述用python+appium对APP进行UI自动化测试的例子。appium支持Android、ios。本课程以Android为例。
学习本章节前提条件,测试人员需要有一定的python基础。
python+appium环境搭建
1、安装python,下载地址:https://www.python.org/downloads/
2、安装Appium-Python-Client库,命令:pip install Appium-Python-Client
3、安装jdk,下载地址:https://www.oracle.com/java/technologies/javase-downloads.html
4、安装Android sdk,下载地址:https://www.androiddevtools.cn/
5、安装appium,下载地址:https://appium.io/
python+appium实例操作说明
1、启动appium服务;
2、连接Android手机或者安装安卓手机模拟器并启动,也启动需要测试的APP;
3、使用adb devices命令,查看手机的驱动名称;
4、使用aapt dump badging ***.apk 命令,进行获取APP包名、activity名;
5、在Android的tools文件夹下运行uiautomatorviewer.bat,该工具可以进行APP的元素定位,同时也可以获取包名。
6、项目目录结构
文件夹结构如下图所示:
testCase--存放测试用例的文件夹
testImg--存放测试结果的截图文件
testLib--存放测试脚本需要依赖的第三方库文件
testLog--存放测试结果日志文件
testParame--存放定位元素的参数,为python文件
testReport--存放测试报告文件,为html文件
mainRun.py--入口文件
7、核心代码解说
7.1、入口文件mainRun.py
7.2、myPageIni.py文件
myPageIni.py文件是在testParame文件夹下,其主要是设置元素的定位参数。
7.3、baseIni.py文件
baseIni.py文件也是在testParame文件夹下,其主要是配置appium启动的参数。
# 定义一个空的字段变量
desired_caps = {}
# 给platformName健赋值,因为用安卓手机测试,所以值为Android
desired_caps['platformName'] = 'Android'
# 给platformVersion健赋值,值为手机的当前系统版本
desired_caps['platformVersion'] = '7.1.1'
# 给deviceName健赋值,值为手机的驱动名称,用adb devices 可以查看获得
desired_caps['deviceName'] = '4769f426'
# 给appPackage健赋值,值为app的包名,可以用adb shell dumpsys activity | findstr mFocusedActivity 查看获得
desired_caps['appPackage'] = 'com.liuqing.test'
# 给appActivity健赋值,值为app的Activity,可以用aapt dump badging liuqing.apk 查看获得,其中launchable-activity冒号后面的就是其值
desired_caps['appActivity'] = 'com.ssf.tckotlin.ui.activity.welcome.WelcomeActivity'
# appServer 是启动的服务器
appServer='http://localhost:4723/wd/hub'
7.4、myPage.py文件
myPage.py文件是在testCase文件夹下,其主要处理app的自动化测试逻辑。
7.5、HTMLTestRunner.py文件
HTMLTestRunner.py文件是在testLib文件夹下,其是外来库,是生成html的测试报告库,下载地址:http://tungwaiyip.info/software/HTMLTestRunner.html
8、测试报告
测试脚本运行后,会自动生成html报告,格式内容如下:
Appium定位
1、常用识别元素的工具
uiautomator:Android SDK自带的一个工具,在tools目录下
monitor:Android SDK自带的一个工具,在tools目录下
Appium Inspector:Appium自带的一个功能,只有mac下可以使用该功能
2、通过id定位
例子:driver.find_element_by_id("***")
3、通过class_name定位
例子:driver.find_element_by_class_name("***")
4、通过xpath定位
例子:driver.find_element_by_xpath("***")
5、通过text定位
例子:driver.find_elements_by_android_uiautomator("***")
6、通过css_selector定位(webview)
只适用于webview的html页面,继承自webdriver,与pc版本的UI测试一致;例子:driver.find_element_by_css_selector("***")
7、通过link_text定位(webview)
只适用于webview的html页面,继承自webdriver,与pc版本的UI测试一致;例子:
driver.find_element_by_link_text("***")
8、通过name定位
例子:
driver.find_element_by_name("***")
难点
1、安卓7.0系统,在appium1.4版本以下不能定位到元素;
2、启动uiautomatorviewer.bat,获取页面元素时,报错;打开 uiautomatorviewer 时报错:
Error while obtaining UI hierarchy XML file: com.android.ddmlib.SyncException: Remote object doesn't exist! Error while obtaining UI hierarchy XML file: com.android.ddmlib.SyncException: Remote object doesn't exist!
解决方法:
拔出usb数据线,重新连接手机;重新启动即可。
3、常出现捕捉不到元素的情况,解决方法增加一个停留时间:time.sleep(秒数字)
猜你喜欢
- 2025-06-18 利用Python伪装女神电话,恶搞室友
- 2025-06-18 Android Studio安装超详细步骤(android studio 2020.3.1安装教程)
- 2025-06-18 如何用LightningChart创建Android图表数据可视化应用程序(上)
- 2025-06-18 程序高手如何学习安卓开发?(安卓软件开发自学教程)
- 2025-06-18 微软发布Skype商业版SDK 支持Android和iOS系统
- 2025-06-18 Android Systrace 使用方法(android setsystemuivisibility)
- 2025-06-18 不再怕刺眼:Android M新增暗色系统UI模式
- 2025-06-18 安卓10来了:最后一项功能改变,让你不想升级!
- 2025-06-18 linux下开发一个应用,首先要做什么?
- 2025-06-18 Appium + Python + WiFi实现对手机的自动化
你 发表评论:
欢迎- 最近发表
-
- 数据存储硬盘 Intel S3710广州报4500元
- K2 Blackpearl软硬件配置推荐(k2pa2配置)
- Supermium 浏览器现在支持 Windows XP 和其他“古老”操作系统
- 广西用友T6V7.1安装企业管理软件安装说明
- 用友T6V7.1软件安装笔记(用友t6软件下载)
- 谈谈P2V迁移踩过的坑(p2v迁移工具window)
- 利用Python伪装女神电话,恶搞室友
- Android Studio安装超详细步骤(android studio 2020.3.1安装教程)
- 如何用LightningChart创建Android图表数据可视化应用程序(上)
- 程序高手如何学习安卓开发?(安卓软件开发自学教程)
- 标签列表
-
- sd分区 (65)
- raid5数据恢复 (81)
- 地址转换 (73)
- 手机存储卡根目录 (55)
- tcp端口 (74)
- project server (59)
- 双击ctrl (55)
- 鼠标 单击变双击 (67)
- debugview (59)
- 字符动画 (65)
- flushdns (57)
- ps复制快捷键 (57)
- 清除系统垃圾代码 (58)
- web服务器的架设 (67)
- 16进制转换 (69)
- xclient (55)
- ps源文件 (67)
- filezilla server (59)
- 句柄无效 (56)
- word页眉页脚设置 (59)
- ansys实例 (56)
- 6 1 3固件 (59)
- sqlserver2000挂起 (59)
- vm虚拟主机 (55)
- config (61)
本文暂时没有评论,来添加一个吧(●'◡'●)