如何在车载中控上进行UI自动化测试

2024-09-02 00:12

本文主要是介绍如何在车载中控上进行UI自动化测试,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


说到车载测试,很多人都很好奇,车载中控是否需要UI自动化测试,从市场反馈来说,在6-7年之前的车载中控测试就已经介入UI自动化测试,那时候还是使用java+UIautomator框架。现在大部分都已经更新为Python+Appium框架进行自动化测试。


01 项目需要的环境和软件准备

  1.  车机端:开启开发者模式,开启USB调试模式,用于adb的环境的连接。

  2. 电脑环境:

        ①、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是编译环境。

 

0项目中需要使用库的安装

以项目创建在虚拟环境为例:

(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目录中,执行:

图片

0设计业务进行代码编程

# 导入时间模块,用于设置等待
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框架等技术。

这篇关于如何在车载中控上进行UI自动化测试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1128446

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

字节面试 | 如何测试RocketMQ、RocketMQ?

字节面试:RocketMQ是怎么测试的呢? 答: 首先保证消息的消费正确、设计逆向用例,在验证消息内容为空等情况时的消费正确性; 推送大批量MQ,通过Admin控制台查看MQ消费的情况,是否出现消费假死、TPS是否正常等等问题。(上述都是临场发挥,但是RocketMQ真正的测试点,还真的需要探讨) 01 先了解RocketMQ 作为测试也是要简单了解RocketMQ。简单来说,就是一个分

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

【测试】输入正确用户名和密码,点击登录没有响应的可能性原因

目录 一、前端问题 1. 界面交互问题 2. 输入数据校验问题 二、网络问题 1. 网络连接中断 2. 代理设置问题 三、后端问题 1. 服务器故障 2. 数据库问题 3. 权限问题: 四、其他问题 1. 缓存问题 2. 第三方服务问题 3. 配置问题 一、前端问题 1. 界面交互问题 登录按钮的点击事件未正确绑定,导致点击后无法触发登录操作。 页面可能存在

业务中14个需要进行A/B测试的时刻[信息图]

在本指南中,我们将全面了解有关 A/B测试 的所有内容。 我们将介绍不同类型的A/B测试,如何有效地规划和启动测试,如何评估测试是否成功,您应该关注哪些指标,多年来我们发现的常见错误等等。 什么是A/B测试? A/B测试(有时称为“分割测试”)是一种实验类型,其中您创建两种或多种内容变体——如登录页面、电子邮件或广告——并将它们显示给不同的受众群体,以查看哪一种效果最好。 本质上,A/B测

【Linux 从基础到进阶】Ansible自动化运维工具使用

Ansible自动化运维工具使用 Ansible 是一款开源的自动化运维工具,采用无代理架构(agentless),基于 SSH 连接进行管理,具有简单易用、灵活强大、可扩展性高等特点。它广泛用于服务器管理、应用部署、配置管理等任务。本文将介绍 Ansible 的安装、基本使用方法及一些实际运维场景中的应用,旨在帮助运维人员快速上手并熟练运用 Ansible。 1. Ansible的核心概念

如何使用Ansible实现CI/CD流水线的自动化

如何使用Ansible实现CI/CD流水线的自动化 持续集成(CI)和持续交付(CD)是现代软件开发过程中的核心实践,它们帮助团队更快地交付高质量的软件。Ansible,作为一个强大的自动化工具,可以在CI/CD流水线中发挥关键作用。本文将详细介绍如何使用Ansible实现CI/CD流水线的自动化,包括设计流水线的结构、配置管理、自动化测试、部署、以及集成Ansible与CI/CD工具(如Jen

遮罩,在指定元素上进行遮罩

废话不多说,直接上代码: ps:依赖 jquer.js 1.首先,定义一个 Overlay.js  代码如下: /*遮罩 Overlay js 对象*/function Overlay(options){//{targetId:'',viewHtml:'',viewWidth:'',viewHeight:''}try{this.state=false;//遮罩状态 true 激活,f

利用matlab bar函数绘制较为复杂的柱状图,并在图中进行适当标注

示例代码和结果如下:小疑问:如何自动选择合适的坐标位置对柱状图的数值大小进行标注?😂 clear; close all;x = 1:3;aa=[28.6321521955954 26.2453660695847 21.69102348512086.93747104431360 6.25442246899816 3.342835958564245.51365061796319 4.87