app ui自动化测试

一、环境搭建
appium+IDEA+maven+junit5+allure+jenkins
1.UI自动化测试框架:appium
环境搭建:Node.js+jdk1.8+andorid sdk+appium
Appium环境搭建超详细教程:https://zhuanlan.zhihu.com/p/49193525
Appium国内下载地址 : http://pan.baidu.com/s/1jGvAISu
https://github.com/appium/appium-desktop/releases/tag/v1.8.2

检查appium环境搭建是否成功:例如验证是否能在appium中打开雪球app(https://www.jianshu.com/p/2bfe498f8f44)
1.安装mumu模拟器,mumu模拟器中安装雪球app,在模拟器系统设置中打开usb调试模式
2.连接mumu模拟器: 在cmd控制台输入:adb connect 127.0.0.1:7555
3.获取deviceName:在cmd控制台输入:adb devices
appium启动参数:
{
"platformName": "Android",
"deviceName": "127.0.0.1:7555",
"appPackage": "com.xueqiu.android",
"appActivity": ".view.WelcomeActivityAlias",
"automationName": "uiautomator2",
"platformVersion": "6.0.1",
"app": "D:\com.xueqiu.android_13.13.5_13135.apk"
}
如果雪球app能正常启动,说明appium环境搭建没问题
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

  1. adb shell(存在多个模拟器时,使用adb -s 模拟器名称 shell)
  2. 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

appium启动过程中常见报错信息:
An unknown server-side error occurred while processing the command. Original error: Could not sign with default certificate. Original error Command ''C:\Program Files\Java\jdk1.8.0_121\bin\java.exe' -jar 'C:\Program Files (x86)\Appium\resources\app\node_modules\appium\node_modules\appium-adb\jars\sign.jar' 'C:\Program Files (x86)\Appium\resources\app\node_modules\appium\node_modules\appium-uiautomator2-server\apks\appium-uiautomator2-server-v1.18.0.apk' --override' exited with code 1
解决方法:以管理员身份打开appium

An unknown server-side error occurred while processing the command. Original error: Could not find zipalign.exe in D:\ANDROID_SDK\platform-tools\zipalign.exe,D:\ANDROID_SDK\emulator\zipalign.exe,D:\ANDROID_SDK\tools\zipalign.exe,D:\ANDROID_SDK\tools\bin\zipalign.exe. Do you have the Android SDK installed at 'D:\ANDROID_SDK'?
解决方法:重装SDK (出现此问题是因为SDK安装有问题)

An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command 'D:\ANDROID_SDK\platform-tools\adb.exe -P 5037 -s 127.0.0.1:7555 pull /data/app/com.xueqiu.android-1/base.apk C:\Users\f2849440\AppData\Local\Temp\com.xueqiu.android.apk' timed out after 60000ms'; Stderr: ''; Code: 'null'
解决方法:启动参数中要增加app的路径
app----D:\com.xueqiu.android_13.13.5_13135.apk

posted @ 2020-07-23 16:00  zhanchenglan  阅读(1338)  评论(0编辑  收藏  举报