软件测试进阶之自动化测试——python+appium实例

Posted 软件测试小dao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件测试进阶之自动化测试——python+appium实例相关的知识,希望对你有一定的参考价值。

在这里插入图片描述
扼要:

1、了解python+appium进行APP的自动化测试实例;

2、能根据实例进行实训操作;

本课程主要讲述用python+appium对APP进行UI自动化测试的例子。appium支持androidios。本课程以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(秒数字)

最后

在这里插入图片描述

关注微信公众号:【软件测试小dao】免费领取软件测试资料
更多软件测试资源请加软件测试技术交流群:1033482984

不要只做收藏从未停止,行动从未开始的人,很多事情,做着做着就无师自通了。如果在做的过程中还能稍微加点思考,稍微看一些别人的经验和做法,成长会更快,效果也会更好!加油吧,测试人!路就在脚下,成功就在明天!

以上是关于软件测试进阶之自动化测试——python+appium实例的主要内容,如果未能解决你的问题,请参考以下文章

python自动化测试应用-第7篇(WEB测试)--Selenium进阶篇

Selenium自动化测试Python三:WebDriver进阶

测试工程师进阶,从0-1学习Cucumber之基于behave自动化测试教程

Python接口测试框架实战与自动化进阶

测试工程师进阶,从0-1学习Cucumber之基于behave自动化测试教程

测试工程师进阶,从0-1学习Cucumber之基于behave自动化测试教程