当前位置: 首页 > news >正文

如何实现APP自动化测试?

APP测试,尤其是APP的自动化测试,在软件测试工程师的面试中越来越会被问到了。为了更好的回答这个问题,我今天就给大家分享一下,如何进行APP的自动化测试。

一、为了实现Java+Appium+Junit技术用于APP自动化测试,所以需要完成以下内容:

1、完成环境配置:
2、安装JDK,配置Java开发环境。JDK版本为1.8.
3、下载和配置完成ADT环境。Android Development Tools环境。
4、调试完成adb命令。
5、安装和使用Android模拟器工具。
6、下载和配置好Appium,需要安装node.js环境(一般是为了安装appium)。
7、将Java开发Appium的相关文件(Jar文件准备好)。
8、下载和配置Junit环境。

二、开始编写和准备测试脚本。

1、创建Java工程和项目。
2、创建一个Junit的Java文件,将Junit4的相关包添加到build path中。

 3.将appium相关的三个Jar包,放在项目的lib文件中,并添加到build path中。

 4.开始编写测试脚本。在Junit的Java文件中,设置Desired Capabilities。

DesiredCapabilities dc = new  DesiredCapabilities();
//添加属性
dc.setCapability("deviceName", "127.0.0.1:56001");
dc.setCapability("automationName", "Appium");
dc.setCapability("platformName", "Android");
dc.setCapability("platformVersion", "4.4.4");
dc.setCapability("appPackage", "com.ibox.calculators");
dc.setCapability("appActivity", ".CalculatorActivity");

 使用adb命令,获取设备名称。打开模拟器,使用adb命令:adb devices.

 使用adb命令,获取Android系统版本号。

 使用adb命令,获取APP的包名称。

 使用相关的adb命令,获取到被测APP的activity名称。

 定义驱动对象

//生成对象的地址和路径
AppiumDriver driver = new AppiumDriver(new URL("http://127.0.0.1:4723/wd/hub"),dc);

使用UIautomatorViewer。定位界面元素,并对元素进行操作。

 开始编写代码。

//定位APP的界面元素/** 实现计算器计算98+45=* *///元素等待Thread.sleep(10000);driver.findElement(By.id("com.ibox.calculators:id/user_privacy_ok")).click();Thread.sleep(3000);driver.findElement(By.id("com.ibox.calculators:id/digit9")).click();Thread.sleep(2000);driver.findElement(By.id("com.ibox.calculators:id/digit8")).click();Thread.sleep(2000);driver.findElement(By.id("com.ibox.calculators:id/plus")).click();Thread.sleep(2000);driver.findElement(By.id("com.ibox.calculators:id/digit4")).click();Thread.sleep(2000);driver.findElement(By.id("com.ibox.calculators:id/digit5")).click();Thread.sleep(2000);driver.findElement(By.id("com.ibox.calculators:id/add_item")).click();

启动APPium,并开启服务。(将host设置为127.0.0.1,Port保持默认(4723))

 运行脚本。这个地方没法截图了。(大家脑补一下吧)

http://www.lryc.cn/news/92688.html

相关文章:

  • ​​INNODB和MyISAM区别
  • 普中自动下载软件1.86下载程序失败案例
  • JavaScript HTML DOM
  • solr快速上手:配置IK中文分词器(七)
  • 【软件测试】接口测试工具APIpost
  • 第六章 假言:那么、就、则;才。
  • [干货] 如何解决慢SQL?详细分析和优化实践!
  • 数据库实验三 数据查询二
  • 论文笔记与实战:对比学习方法MOCO
  • 大数据Doris(三十八):Spark Load 导入Hive数据
  • 【Prometheus】mysqld_exporter采集+Grafana出图+AlertManager预警
  • softmax 函数
  • 【SpringMVC】拦截器和过滤器之间的区别
  • springboot第25集:实体类定义规则
  • 【python】—— python的基本介绍并附安装教程
  • 浏览器跨域请求
  • 什么,你还在用 momentJs 处理相对时间
  • 三维模型 工程图
  • 我用ChatGPT写2023高考语文作文(二):全国乙卷
  • java版本工程项目管理系统平台源码,助力工程企业实现数字化管理
  • 代码随想录第55天
  • 算法设计与分析(填空专题)
  • Ubuntu22.04 K8s1.27.2
  • 卡尔曼滤波与组合导航原理(十二)扩展卡尔曼滤波:EKF、二阶EKF、迭代EKF
  • 基于蒙特卡洛模拟法的电动汽车充电负荷研究(Matlab代码实现)
  • 自学黑客【网络安全】,一般人我劝你还是算了吧
  • 编程中的心理策略:如何从错误中学习并实现自我成长
  • Rocket面试(五)Rocketmq发生流量控制的情况有哪些?
  • Tableau招聘信息数据可视化
  • 游戏服务器开发指南(八):合理应对异常