一、环境搭建
appium+IDEA+maven+junit5+allure+jenkins
1.UI自动化测试框架:appium
环境搭建:Node.js+jdk1.8+andorid sdk+appium
Appium环境搭建超详细教程:https://zhuanlan.zhihu.com/p/49193525
2.脚本编译工具:IDEA
直接在官网下载社区版:https://www.jetbrains.com/idea/download/#section=windows
3.项目管理工具:maven
maven的安装和配置:https://www.cnblogs.com/duduwy/p/12448076.html
4.单元测试框架:junit5
junit5注解详解:https://tonydeng.github.io/2017/10/10/junit-5-annotations/
5.编程语言:java
java教程:https://www.liaoxuefeng.com/wiki/1252599548343744/1259542531392800
6.脚本中的断言:hamcrest
hamcrest教程:http://hamcrest.org/JavaHamcrest/tutorial
7.生成测试报告:allure
allure安装和使用方法:https://www.jianshu.com/p/b5a6e902c9d4
8.自动化测试项目集成:tomcat+jenkins
二、创建第一个自动化测试项目
打开IDEA,菜单栏File-New-Project
填写工程名称和存放路径
完成创建之后需要修改以下地方:
点击菜单栏File-Settings
以上就完成了maven工程的创建
三、编写第一个测试用例
app ui自动化测试用例的编写采用PO模式:将page页面封装在src/main/java目录下,测试用例放在src/test/java目录下,如图所示:
封装的页面包名和测试用例包名最好是一一对应的,如图所示:
编写一个app登录的测试用例:
testcase部分
在方法名前增加@Test注解即为一个测试用例 @BeforAll注解是在所有用例执行前执行此方法中的操作 @AfterAll为执行完所有用例后执行此方法中的操作
(junit5注解)
页面封装:
首先需要封装一个页面配置appium启动参数:
Appium的参数配置介绍:https://blog.csdn.net/chenmozhe22/article/details/80527209
页面的封装:因为所有的页面执行点击、滑动或其它操作都需要通过driver执行,所以需要从启动页传递driver到下一个页面
然后就是定位元素,执行点击、输入操作
元素定位方法:https://www.jianshu.com/p/8c06f8e64d72
点击、文本输入方法封装:
以上就是一个简单的例子介绍app ui自动化测试用例编写过程
四、如何将自动化测试项目集成到本地jenkins
在下一篇博客中介绍:https://i.cnblogs.com/posts/edit
appium怎么获取当前页面的所有元素 :findElementsByXPath("//*")
apium如何获取appPackage和appActivity
https://www.cnblogs.com/iloverain/p/9614262.html
方法1:通过cmd命令,前提是先打开手机中你要获取包名的APP
- adb shell(存在多个模拟器时,使用adb -s 模拟器名称 shell)
- dumpsys activity | grep mFocusedActivity
方法2:
cmd窗口输入:adb shell pm list packages | findstr anjou (查看anjou相关的包)
adb shell dumpsys package com.anjounail.app (查看anjounail包的所有信息)
可看到美甲涂涂app国外版本的包名和Activity : com.anjoua1.app/com.vava.quickdevelop.UI.Start.WelcomeActivity
方法3:
cmd窗口输入:adb logcat
打开app
在日志中可找到: Window{312be8a u0 com.anjoua1.app/com.vava.quickdevelop.UI.Start.WelcomeActivity}
方法4:
精确查找package的activity的方法
adb shell am force-stop com.tencent.mm
adb logcat :S ActivityManager: | finfstr com.tencent.mm