目前大家熟知的测试主要分为功能测试、接口测试、UI测试,本文重点介绍的则是UI测试
UI 测试 通常分为WEB 端和 移动端,前者主要是针对PC端的网站进行测试,主要是模拟各个浏览器的内核的兼容性,后者则是针对App Native、H5、Hybrid进行模拟测试,发现多机型的兼容性问题
本文主要介绍APP 原生的UI测试,当然APP 原生目前主流的又分为Android和iOS两大阵营,本文主要先介绍Android,后面文章再介绍iOS的UI测试,
采用目前主流的开源框架Appium
如下步骤皆是以Mac 系统,M1Pro环境下进行实践的
下载地址:
https://android-studio.en.softonic.com/mac
下载地址:
https://github.com/appium/appium-desktop/releases/tag/v1.22.3-4
下载地址:
https://github.com/appium/appium-inspector/releases
这个工具下载的目的是为了定位app的界面元素,并可以生成录制界面操作的客户端脚本
以小米10S为例说明
开启【开发者选项】
在【设置】–》【我的设备】–》【全部参数】–》【MIUI版本】
点击多次MIUI版本 开启【开发者选项】
开启USB调试相关开关
注意:
连接小米真机调试时,还需要在真机安装SIM卡
{
“platformName”: “Android”,
“appium:platformVersion”: “12”,
“appium:deviceName”: “M2102J2SC”,
“appium:appPackage”: “com.starbucks.cn”,
“appium:appActivity”: “com.starbucks.cn.ui.StarbucksLaunchActivity”
}
deviceName 可以通过如下操作获取:
$adb devices -l
platformVersion 可以通过如下操作获取:
appPackage和 appActivity可以通过如下操作获取:
下载星巴克Android安装包apk,可以在应用宝市场中下载
https://a.app.qq.com/o/simple.jsp?pkgname=com.starbucks.cn&channel=0002160650432d595942&fromcase=60001
将录制的脚本复制到python客户端工具中:
el1 = driver.find_element(by=AppiumBy.XPATH, value="/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.view.ViewGroup/android.widget.FrameLayout/android.view.ViewGroup/android.view.ViewGroup/android.widget.LinearLayout/android.widget.ScrollView/android.widget.LinearLayout/android.view.ViewGroup/android.widget.LinearLayout/android.view.ViewGroup[3]/android.widget.FrameLayout[1]/android.view.ViewGroup")
el1.click()
el2 = driver.find_element(by=AppiumBy.ID, value="com.starbucks.cn:id/phone_number")
el2.send_keys("13877889911")
el3 = driver.find_element(by=AppiumBy.ID, value="com.starbucks.cn:id/code_button")
el3.click()
el4 = driver.find_element(by=AppiumBy.XPATH, value="/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.view.ViewGroup/android.view.ViewGroup/android.view.ViewGroup/androidx.viewpager.widget.ViewPager/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.FrameLayout/android.widget.EditText")
el4.send_keys("2221")
执行如上脚本完成自动化UI测试