【2023最新教程】一文3000字从0到1教你做app自动化测试(保姆级教程)

news2024/12/26 23:49:40

一、什么是App自动化?为什么要做App自动化?

App自动化是指给 Android或iOS上的软件应用程序做的自动化测试。

手工测试和自动化测试的对比如下:

手工测试优势:不可替代、发现更多bug、包含了人的想象力与理解力。
注意,不是所有功能都需要自动化。

自动化测试优势:可重复、效率高,增加软件信任度。
执行自动化测试可以让测试同事有更多的精力来关注复杂场景,做更多更深层次的测试。

风险分析

自动化测试的主要风险分析如下:

(1)测试用例覆盖率(覆盖率决定测试效率,选择合适用例,应约占功能用例集的20%~50%)

(2)测试结果准确度(准确度决定了测试有效性,应尽可能减少误报)。

(3)自动化代码维护(维护决定了成本,数据关键字驱动自动化框架,代码应尽可能优化和少改动)。

(4)版本开发和测试时间进度(当项目需求和功能较为稳定时,建议用自动化)。

(5)开发对控件元素增修改的程度(需开发人员尽可能地用name元素,并且和UI设计一致,修改变动程度不大,测试人员可根据提供的元素提前介入,开发自动化脚本)。

App源码权限控制,iOS上测试需要源码。实际测试只需SVN或者git下载权限,而不需要上传权限。防止改动SVN或者git 上的源码。

技术框架

01自动化学习过程

自动化测试环境的部署-->自动化测试脚本开发能力--->自动化测试框架研发--->手机自动化持续集成

andorid 系统架构图

03、手机自动化测试环境

安装Appium-->安装手机模拟器-->安装selenium和appium的客户端-->安装被测试app

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!qq群号:110685036

04Appium 软件架构

05常用的定位技术和工具

06自动化测试脚本技术

07技术框架结构图

APP自动化测试流程01环境的安装1.1 环境的准备
1:jdk1.6以上
2:python2.7以上
3:android-sdk
4:Appium desktop 安装

1.2 jdk 安装
1:下载JDK后傻瓜式安装,注意:不要有中文路径和空格

2:配置环境变量:
右击“我的电脑”-->"属性"-->"高级系统设置"-->"高级"-->"环境变量"

1)在系统变量里新建"JAVA_HOME"变量,变量值为:C:\Program Files\Java\jdk1.8.0_60(根据自己的jdk的安装路径填写)
2)在系统变量里新建"classpath"变量,变量值为:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar (注意最前面有一点)
3)找到path变量(已存在不用新建)添加变量值:
%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin

1.3 python 安装
1:傻瓜式安装;
2:配置环境变量:电脑属性系统变量添加python根目录

1.4 安装Android的测试开发环境
1:Android-SDK的安装:SDK manager.exe 双击打开下载

2:android-sdk环境变量的配置

具体操作步骤:
1.新建ANDROID_HOME
路径为C:\Program Files (x86)\Android\android-sdk\
2.在Path 变量中加入路径
%ANDROID_HOME%\platform-tools 和 %ANDROID_HOME%\tools
3. 检查adb 环境变量


4.连接手机
如果是真机,手机插上USB连接电脑,打开开发者模式,cmd输入adb devices
如果是模拟器,需要输入adb connect 127.0.0.1:62001或者52001连接,然后再输入adb devices

Appium desktop 安装
下载地址:https://github.com/appium/appium-desktop/releases/tag/v1.3.1
傻瓜式安装 注意:一定要选择所有用户权限要不然用不了UiAutomator2
02API脚本
2.1如何获取APP启动的AppPackage和AppActivity

1:通过appt获取切换到aapt所在的目录,执行aapt dump(aapt是sdk自带的一个工具,在sdk\builds-tools\目录下)使用命令aapt dump badging “D:\ jinritoutiao_7500.apk”运行后的结果中以下两行分别是应用包名package和入口activity名称

package: name=’ com.ss.android.article.news’
launchable-activity: name=‘com.ss.android.article.news.activity.LaunchActivity’

2: 通过 adb shell am start com.ss.android.article.news/com.ss.android.article.news.activity.MainActivity
来判断启动的app 是否正确

2.2 启动appium

2.3、写脚本

1、platformName:这里是 android 的 apk

2、deviceName:手机设备名称,通过 adb devices 查看

3、platformVersion:android 系统的版本号

4、appPackage:apk 包名

5、appActivity:apk 的 launcherActivity


2.4生成测试报告


如果文章对你有帮助,记得点赞,收藏,加关注。会不定期分享一些干货哦......

END配套学习资源分享

最后: 为了回馈铁杆粉丝们,我给大家整理了完整的软件测试视频学习教程,朋友们如果需要可以自行免费领取 【保证100%免费】

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

全套资料获取方式:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/628196.html

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

相关文章

嵌入式 - UART介绍

概述 嵌入式系统经常需要集成电路之间的通信。举个例子,一个数字温度传感器向主控芯片报告房间的环境温度。通常情况,这种数据会通过一个串行接口来传输。 那么,什么是串行接口? 在最基本的角度来说,串行接口是一个移…

微信原生小程序自定义顶部导航

都2023了,自定义顶部导航应该不是什么新鲜事了,这里只是简单记录下 微信自己也提供了自定义顶部导航navigation-bar,大概看了下,可配置的也不少,所以看需求了,如果简单可以采用微信提供的,老规矩…

【Mysql】安装和基础环境配置

本文首发于 慕雪的寒舍 在本地安装mysql,以mariadb为例。 所有命令都需要在root下面执行or使用sudo 系统 CentOS 8 1.安装mariadb开发包 yum install -y mariadb yum install -y mariadb-server yum install -y mariadb-devel2.修改配置文件中的编码 为了保证对…

亚马逊美国站 儿童陀螺玩具CPC认证 陀螺的详细介绍 CPC认证方案的流程

什么是陀螺陀螺指的是绕一个支点高速转动的刚体。陀螺是中国民间最早的娱乐工具之一.形状上半部分为圆形,下方尖锐。从前多用木头制成,现代多为塑料或铁制。玩时可用绳子缠绕,用力抽绳,使直立旋转。或利用发条的弹力旋转。传统古陀…

多通道高通量实时处理单元详细方案设计报告

前端时间,做了一个项目,编写了相关的技术方案设计报告,项目的技术细节虽不能透漏,但这个设计报告做的很好,在此,贡献出来,给有相关需求的同事们做个参考,整个报告84页,2万…

JMeter 测试笔记(二):组件及运行原理

说组件之前,我们先来看一下JMeter的结构图,如下图,把JMeter拆解为三个维度,X空间5个维度,Y空间2个维度,Z空间1个维度。 介绍 X1~X5是负载模拟的整个过程,Y1是负载模拟部分,这部分主…

数字签名和数字证书的原理解读(图文)

数字签名和数字证书的区别是什么?数字证书是由权威机构CA证书授权中心发行的,能提供在Internet上进行身份验证的一种权威性电子文档。而数字签名是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术实现,用于鉴别数…

类型检查:时常被忽略的编译器组件

原文来自微信公众号“编程语言Lab”:类型检查:时常被忽略的编译器组件 搜索关注“编程语言Lab”公众号(HW-PLLab)获取更多技术内容! 欢迎加入 编程语言社区 SIG-类型系统 参与交流讨论(加入方式&#xff1a…

【基于容器的部署、扩展和管理】3.3 自动化扩展和负载均衡

往期回顾: 第一章:【云原生概念和技术】 第二章:【容器化应用程序设计和开发】 第三章:【3.1 容器编排系统和Kubernetes集群的构建】 第三章:【3.2 基于容器的应用程序部署和升级】 自动化扩展和负载均衡 3.3 自动…

ChatGPT 使用 拓展资料:吴恩达大咖 Building Systems with the ChatGPT API 系统评估2

ChatGPT 使用 拓展资料:吴恩达大咖 Building Systems with the ChatGPT API 系统评估2 运行端到端系统以回答用户查询 import time customer_msg = f""" tell me about the smartx pro phone and the fotosnap camera, the dslr one. Also, what TVs or TV r…

HOOPS助力AVEVA数字化转型:支持多种3D模型格式转换!

行业: 电力和公用事业、化工、造船、能源、采矿业 挑战: 创建大规模复杂资产的客户需要汇集多种类型的数据,以支持初始设计和创建强大的数字双胞胎;现有版本的产品只支持半打CAD格式;有限的内部开发资源限制了增加对新…

SpringBoot:SpringBoot配置解读 ③

一、先讲思想 ①. 我们说SpringBoot方向是一直致力于快速应用开发领域的蓬勃发展。 ②. 应用层面: 简化配置,默认配置,约定配置是它的具体体现。 二、YML配置 ①. 这是一种层级结构更清晰的一种配置文件格式。 三、启动依赖配置树 官网的启…

05. Web大前端时代之:HTML5+CSS3入门系列~H5 多媒体系

1.引入 概述 音频文件或视频文件都可以看做是一个容器文件(类似于压缩的zip) 编解码器就是读取特定的容器格式,对其中的音频与视频轨进行解码,然后实现播放 解码器 解码器(decoder),是一种…

C++ 泛型编程 类型萃取器的运用

C 泛型编程 类型萃取器的运用 一、C类型萃取器的基本概念与应用(Type Traits in C)1.1 类型萃取器的定义与作用(Definition and Role of Type Traits)1.2 类型萃取器的分类与特性(Classification and Characteristics …

机器学习极简介绍(二)

人工智能AI 与 机器学习 人工智能、机器学习和深度学习是什么关系? 对于小白来说这些个概念总是混淆,人工智能 ≠ 机器学习,人工智能是更广泛的概念,它包括了所有使计算机系统具备智能行为和能力的技术和方法。机器学习是人工智…

postgres篇---docker安装postgres,python连接postgres数据库

postgres篇---docker安装postgres,python连接postgres数据库 一、docker安装postgres1.1 安装Docker:1.2 从Docker Hub获取PostgreSQL镜像1.3 创建PostgreSQL容器1.4 访问PostgreSQL 二. python连接postgres数据库2.1 connect连接2.2 cursor2.3 excute执…

ubuntu22.04下用opencv4.5.4访问照片、视频、摄像头

本文主要记录近期在学习opencv使用过程中的一些细节 前言:ubuntu22.04 OpenCV4.6.0(c)环境配置 opencv的安装过程可参考下面博文,亲测有效(容易出现问题的地方在安装下面依赖的时候,一般会出现报错,需要自己换源&…

让你不再疑惑音频如何转文字

随着科技的不断发展,我们现在可以通过各种智能设备来轻松地录制音频。但是,当我们需要将音频中的内容转换成文字时,该怎么办呢?这时候,转换工具就派上用场了!那么你知道音频怎么转文字吗?接下来…

CSS2学习笔记

一、CSS基础 1.CSS简介 CSS 的全称为:层叠样式表 ( Cascading Style Sheets ) 。CSS 也是一种标记语言,用于给 HTML 结构设置样式,例如:文字大小、颜色、元素宽高等等。简单理解: CSS 可以美化 HTML , 让 HTML 更漂亮…

【产品经理】成熟产品狗必备特质

在自己从事产品经理这个职位的3年间,看过不少产品经理成长相关的文章书籍,涵盖了挺多经验、素质、能力,平时工作中也会注意学以致用,所以每每回顾此事,都觉得这对自己的工作、个人成长起到了莫大的推进作用。 1、外部合…