前言
目前大家熟知的测试主要分为功能测试、接口测试、UI测试,本文重点介绍的则是UI测试
UI 测试
UI 测试 通常分为WEB 端和 移动端,前者主要是针对PC端的网站进行测试,主要是模拟各个浏览器的内核的兼容性,后者则是针对App Native、H5、Hybrid进行模拟测试,发现多机型的兼容性问题
App Native 测试
本文主要介绍APP 原生的UI测试,当然APP 原生目前主流的又分为Android和iOS两大阵营,本文主要先介绍Android,后面文章再介绍iOS的UI测试,
技术选型
采用目前主流的开源框架Appium
准备依赖的安装包
- Jdk 1.8
- android-sdk(或者安装android studio)
- appium server gui
- appium inspector
- com.starbucks.cn_8.13.0_4315.apk
- 夜神模拟器(或者连接真机测试)
搭建环境
如下步骤皆是以Mac 系统,M1Pro环境下进行实践的
安装android studio
下载地址: https://android-studio.en.softonic.com/mac
安装appium server gui
下载地址: https://github.com/appium/appium-desktop/releases/tag/v1.22.3-4
安装appium inspector
下载地址: https://github.com/appium/appium-inspector/releases
这个工具下载的目的是为了定位app的界面元素,并可以生成录制界面操作的客户端脚本
连接真机
以小米10S为例说明 开启【开发者选项】 在【设置】–》【我的设备】–》【全部参数】–》【MIUI版本】 点击多次MIUI版本 开启【开发者选项】
开启USB调试相关开关 注意: 连接小米真机调试时,还需要在真机安装SIM卡
以星巴克 app为例 自动下单点咖啡
配置主要参数
{ “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
开始测试
启动inspector 会话
录制界面操作脚本
将录制的脚本复制到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测试
|