说到车载测试,很多人都很好奇,车载中控是否需要UI自动化测试,从市场反馈来说,在6-7年之前的车载中控测试就已经介入UI自动化测试,那时候还是使用java+UIautomator框架。现在大部分都已经更新为Python+Appium框架进行自动化测试。
01 项目需要的环境和软件准备
-
车机端:开启开发者模式,开启USB调试模式,用于adb的环境的连接。
-
电脑环境:
①、jdk环境搭建,需要有JAVA_HOME的环境变量。后续的 Appium server GUI的配置信息 会用到。
②、adb环境搭建,使用adb devices识别到设备。
③、appium server GUI,客户端程序,安装好即可,在配置信息中配置好JAVA_HOME 和 adb 环境变量。
④、inspector 定位元素的工具,可以通过appium server GUI 的界面进入下载界面下载并安 装。用于界面的元素定位。
⑤、python-3.11,pycharm-社区版本。python是编程语言,pycharm是编译环境。
02 项目中需要使用库的安装
以项目创建在虚拟环境为例:
(1)如何快速进入项目环境目录
①、pycharm中-->控制台中-->terminal可以世界进入虚拟目操作命令
②、右击项目目录-->open-->explorer,直接进入项目所在文件夹-->进入.\venv\Scripts目录,在地址栏输入cmd 回车,直接进入对应目录环境,执行activate.bat 进入虚拟环境-->执行pip 安装appium-python-client和selenium命令。
(2) 基本使用的库
①、slenium :4.3.0/appium-python-client:2.6.0 安装appium-python-client的时候回自动安装对应版本的slenium(最新版),如果安装最新的,可以pip uninstall 卸载然后安装4.3.0 版本,其他库再需要使用的时候去安装即可。
②、 套用完成库文件 在别人完成配置的\venv\Scripts的虚拟环境中执行
把requirements.txt 放在需要的项目的\venv\Scripts目录中,执行:
03 设计业务进行代码编程
# 导入时间模块,用于设置等待
from appium import webdriver
# 设置连接的设备信息
des_cap = {
'platformName': 'Android',
'appPackage': 'com.ximalaya.ting.android.car.business.module.home',
'appActivity': 'com.ximalaya.ting.android.car.business.module.home.MainActivity',
'udid': '192.168.43.29:7862',
'appExecTimeout': 50000
}
# 连接设备
drive = webdriver.Remote(command_executor='http://127.0.0.1:4723/wd/hub', desired_capabilities=des_cap)
# 隐式等待
drive.implicitly_wait(3)
# 业务步骤:
# 1. 启动喜马拉雅
# 2. 点击儿童模式
# 3. 点击搜索按键
# 4. 点击输入框
# 5. 输入内容:冰雪大世界
# 6. 回车搜索
# 7. 清空数据
# 点击弹框上的“我同意”
drive.find_element('id', 'com.ximalaya.ting.android.dingwei:id/tv_confirm').click()
# 隐式等待
drive.implicitly_wait(10)
# 点击儿童模式
drive.find_element('id', 'com.ximalaya.ting.android.dingwei:id/iv_mode').click()
# 点击搜索图标
drive.find_element('id', 'com.ximalaya.ting.android.dingwei:id/iv_search').click()
# 点击输入框,提前安装搜狗输入法
drive.find_element('id', 'com.ximalaya.ting.android.dingwei:id/et_search').click()
# 输入内容:冰雪大世界
drive.find_element('id', 'com.ximalaya.ting.android.dingwei:id/et_search').send_keys('冰雪大世界')
# 隐式等待
time.sleep(2)
# 清除输入的的数据
drive.find_element('id', 'com.ximalaya.ting.android.dingwei:id/et_search').clear()
# 隐式等待
time.sleep(2)
# 点击取消,回到儿童模式
drive.find_element('id', 'com.ximalaya.ting.android.dingwei:id/tv_cancel').click()
# 隐式等待
time.sleep(2)
# 切回普通模式
drive.find_element('id', 'com.ximalaya.ting.android.dingwei:id/iv_mode').click()
# 隐式等待
time.sleep(2)
# 点击推荐
drive.find_elements('id', 'com.ximalaya.ting.android.dingwei:id/title_horizontal').click()
# 隐式等待
time.sleep(2)
# 点击播放按键
drive.find_element('id', 'com.ximalaya.ting.android.dingwei:id/tv_track_play').click()
以上就是车载中控UI自动化测试基本准备和操作,有条件的可以进行练习。工作中的UI自动化测试可能还会需要用到yaml数据文件管理,PO封装模式,Pytest框架等技术。