如何实现APP自动化测试?

news2024/11/23 13:13:50

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.coloradmin.cn/o/630963.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用AIGC工具提升论文阅读效率

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

接口测试实战工具如何选择?这6个工具首选(建议收藏)

常见接口类型 • HTTP/HTTPS 类型接口 基于HTTP协议开发的接口现在应用是最为广泛的,这类API使用起来简单明了,因为它是轻量级的、跨平台、跨语言的, 但凡是第三方提供的API都会有HTTP版本的接口。 RESTful API也是基于HTTP协议的&#xff0c…

Android滴滴路由框架DRouter原理解析

作者:linversion 前言 最近的一个新项目使用了Clean Architecture模块化MVVM架构,将首页每个tab对应的功能都放到单独的模块且不相互依赖,这时就有了模块间页面跳转的问题,经过一番研究选择了滴滴的DRouter,因为其出色…

Image captioning中自定义文本数据整理为类似Flickr8k.token.txt的格式--->助力后期生成JSON格式用于训练

手把手实现Image captioning,将自定义文本数据整理为类似Flickr8k.token.txt的格式,助力后期生成JSON格式用于训练。如果感觉有用,不妨给博主来个一键三连,白天科研,晚上肝文,实属不易~ ~ ](https://imgse.com/i/p9FmMDK) 这里写目录标题 1. 任务需求2. 程序实现2.1 读取…

vistual studio 2017中导入pthread.h的配置方法

1.下载pthread.h的相关库文件 下载路径 https://www.mirrorservice.org/sites/sourceware.org/pub/pthreads-win32/pthreads-w32-2-9-1-release.zip 加压后得到两种系统版本的三个文件夹 pthreads.2 : 包含了pthread的源文件 Pre-built2 :包含了pthreads for win32的头文件…

软件测试04:软件测试流程和软件测试过程

软件测试04:软件测试流程和软件测试过程 软件测试流程 软件测试流程:获取测试需求->编写测试计划->制造测试方案->开发与设计测试用例->执行测试->提交缺陷报告->测试分析与评审->提交测试总结->准备下一版本测试 软件测试过…

网页JS自动化脚本(九)创建一键导出数据库到桌面的功能按钮

我们获取到了数据库,当然我们希望能把这个数据库给保存到本地电脑上进行一些数据的处理,我们这一节就添加一个按钮把数据一次性导出 保存到桌面为json格式 我们直接用TXT打开它如下图所示 然后再使用json转EXCEL的小工具规整之后如下图 好了我们下面上代码 // UserScript // n…

算法提高-图论-单源最短路的综合应用

单源最短路的综合应用 单源最短路的综合应用AcWing 1135. 新年好AcWing 340. 通信线路AcWing 342. 道路与航线AcWing 341. 最优贸易 单源最短路的综合应用 AcWing 1135. 新年好 多次dijkstra求每个点到其它点的最短距离, 此时相当于建好了一张图,每个点…

http客户端Fegin

1.RestTemplate方式调用存在的问题 代码可读性差,编程体验不统一 参数复杂URL难以维护 2.Feign的介绍 Feign是声明式的http客户端(只需要将发http请求的信息写出即可) 主要基于SpringMvc的注解来声明远程调用的信息: 步骤&…

(十二)K8S可视化工具Rancher部署项目应用实战

1.Rancher部署springboot私有镜像 连接私有镜像操作步骤 1.进入资源>>密文 2.进入镜像库凭证列表,点击添加凭证 3.输入凭证名称,选择自定义,填入自己的私有镜像仓库地址,这里使用的是阿里云,输入用户名和密码…

Zoho CRM SDK

前言 因早期公司的业务在Zoho CRM,现在孵化出自己的想法,想着能把一部分CRM的数据同步导出来,故研究Zoho CRM SDK的接入方法。虽说在文档上都有提及,但有部分细节不甚明了,也是一遍遍尝试出来的,所以分享出…

【Vue】六:路由(上)使用路由 多级路由

文章目录 1.多页面应用2. 单页面应用(使用路由)3. 多级路由 1.多页面应用 2. 单页面应用(使用路由) (1)安装vue-router插件 vue2 要安装 vue-router3 npm i vue-router3vu3 要安装 vue-router4 npm i vue…

字节薪酬体系被曝光,我真的酸了....

曾经的互联网是PC的时代,随着智能手机的普及,移动互联网开始飞速崛起。而字节跳动抓住了这波机遇,2015年,字节跳动全面加码短视频,从那以后,抖音成为了字节跳动用户、收入和估值的最大增长引擎。 自从字节…

【Java】数组详解

文章目录 一、数组的基本认识1.1 数组的概念1.2数组的创建与初始化1.3 数组的使用 二、数组的类型 — 引用类型2.1 JVM 内存分布2.2 什么是引用类型2.3 基本类型变量与引用类型变量的区别2.4 Java 中的 null 三、数组的应用3.1 保存数据3.2 函数参数3.3 函数返回值 一、数组的基…

STL——string和vector容器

初识STL **STL的基本概念****vector容器存放内置数据类型****在vector容器中存放自定义数据类型****vector容器嵌套vector容器****string容器——构造函数****string容器——赋值操作****string容器——字符串拼接****string容器——字符串的查找和替换****string容器——字符串…

Java阶段四Day01

Java阶段四Day01 文章目录 Java阶段四Day01Security框架通配符Vue脚手架 Vue-cli关于VUE关于VUE Cli创建Vue Cli工程解决端口被占用 Vue工程的工程结构[.idea]【重要】[node_modules]【重要】[public]favicon.icoindex.html [src][assets][compnents]【重要】[router][store]【…

Kafka详解(一)

第1章 Kafka概述 1.1 定义 1.2 消息队列 目前企业中比较常见的消息队列产品主要有Kafka、ActiveMQ、RabbitMQ、RocketMQ等。Message Queue ② 在大数据场景主要采用Kafka作为消息队列 ② 在JavaEE开发中主要采用ActiveMQ、RabbitMQ、RocketMQ Kafka存储数据,且保证…

虚函数+多态实现原理(一个冷门知识)

目录 多态实现 虚函数定义 先说原理 抛出问题 探究多态底层 冷门知识 多形态的大海 多态实现 完成类多态体现,多态两个条件: 虚函数重写 父类指针或者引用去调用虚函数。 虚函数定义 虚函数重写/覆盖条件 : 函数 三同 (函数名、参数、返回值) 不符合重写&…

【板栗糖GIS】——如何使用插件将微信读书笔记同步到notion

【板栗糖GIS】——如何使用插件将微信读书笔记同步到notion 注:本文创意以及插件开发皆是B站的【三此君】 视频链接如下: 全网唯一支持图文导出的微信读书插件,升级啦!主打一个惊艳。_哔哩哔哩_bilibili ,我只是记录…

阿里内部人手一份的Spring Cloud Alibaba手册

“微服务架构经验你有吗?” 前段时间一个朋友去面试,阿里面试官一句话问倒了他。实际上,不在 BAT 这样的大厂工作,是很难接触到支撑千亿级流量微服务架构项目的。但也正是这种难得,让各个大厂都抢着要这样的人才&…