APP自动化测试思路整理,跟着步骤快速撸码...

2024-08-29 22:36

本文主要是介绍APP自动化测试思路整理,跟着步骤快速撸码...,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

1、开发语言选择

通常用于自动化测试的编程语言有:Python、Java、Javascript、Ruby、C#、PHP等。

一般我们会选择自己熟悉的编程语言来编写自动化脚本,但对于编程基础基本为0的童鞋(或者专注于做自动化测试的童鞋),推荐学习使用Python。

相对于其他语言,Python做自动化测试有以下优点:

对于初学者来说,Python语法简洁,可读性强,易于学习

有强大的第三方库,编写脚本效率更高

Python中的Pytest自动化测试框架是目前最流行的测试框架之一

2、UI测试框架选择

选择编开发语言之后,我们需要选择UI测试框架。
目前较为主流或者使用较多的APP UI自动化测试框架有Appium、Airtest等。

1)Appium

开源;
Appium server支持在Windows、macOS、Linux上运行;
支持多种主流编程语言,如Python、Java、Javascript、Ruby等;
支持Android、ios、H5自动化测试(集成了UiAutomator、UiAutomation框架);
环境搭建较为复杂;

2)Airtest

由网易开发(官方文档),只支持python语言;
提供集成Airtest与Poco两个测试框架的强大的IDE,对新手很友好;
集成基于图像识别的UI自动化测试框架airtest,即使不懂代码也能编写自动化脚本;
跨平台,可对Windows、Android和iOS应用软件进行自动化测试;
对游戏测试较为友好;
Airtest与Poco本质上是python的两个第三方库,测试环境搭建没有Appium那么复杂;

3)选择框架

根据实际情况选择合适的框架。

以下情况可以优先选择网易的Airtest:
无编程基础;
游戏测试;
测试场景较为单一(Appium相对来说较为笨重);
支付宝小程序自动化(博主目前使用Airtest集成的Poco框架做支付宝小程序自动化测试);

以下情况建议选择Appium:
测试场景比较复杂(如需要多台手机批量测试);
测试脚本语言非Python(Airtest目前只支持Python);

3、单元测试框架选择

区别于上面所说的UI测试框架,单元测试框架用于加载测试用例、执行测试用例、断言、输出测试结果等。

不同的开发语言有各自对应的单元测试框架,如Java有JUnit、TestNG、Robot等,Python有unittest、pytest等。博主主要使用Python做自动化测试,所以这里只针对Python单元测试框架做说明。

python主流的单元测试框架:

unittest,Python自带的单元测试框架

pytest,基于unittest开发,易用性好,信息更详细,插件众多

robot framework,基于Python的关键字驱动测试框架,有界面,自带报告及log,功能完善,清晰美观

这里强烈推荐使用pytest,功能强大且容易上手。

4、测试环境搭建

1)测试电脑选择

有条件的话建议使用Mac机器专门用于UI自动化测试,因为ios app ui自动化只能在Mac机器上进行。

2)测试手机选择

刚开始进行测试脚本调试时可以选择模拟器,Android模拟器可选择Gernymotion、夜神模拟器,具体参考博客Android模拟器的使用

待整个测试项目开发完成后,建议换成真机跑自动化脚本,这样更接近真实的用户使用场景。

3)开发语言环境

建议安装python 3以上的版本,官方已经停止对python2版本的更新维护。

4)UI自动化测试框架环境搭建

之前有写过文章,翻阅即可

5、脚本编写

1)编写测试demo

为了验证整个测试环境是否搭建成功、是否能跑通用例,一般我们需要先编写简单的测试脚本并执行,通过则说明整个环境搭建成功。

2)确定目录结构

推荐使用Page Object设计模式来开发APP UI自动化测试项目,请参考博客Page Object设计模式。

3)选择测试报告

不同的开发语言、不同的单元测试框架可选用不同的测试报告。在python中,unittest框架使用HTMLTestRunner或BSTestrunner生成测试报告,可参考博客unittest单元测试框架。

Pytest框架使用pytest-html生成报告或通过allure定制测试报告。

以上步骤完成后,继续往测试项目里新增测试用例便可。

6、Jenkins集成

根据上述步骤编写完成整个app UI自动化测试项目,且运行一段时间稳定后,就可以考虑进行Jenkins的集成。

7、配套框架

总结APP UI自动化可使用以下几种实现方式:

1)python + appium + unittest + HTMLTestRunner

2)python + appium + pytest + pytest-html / allure

3)python + Airtest(AirtestIDE)

4)python + Poco + pytest + pytest-html / allure

可根据实际情况自行选择。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:【文末小卡片领取】

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

这篇关于APP自动化测试思路整理,跟着步骤快速撸码...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

springboot整合 xxl-job及使用步骤

《springboot整合xxl-job及使用步骤》XXL-JOB是一个分布式任务调度平台,用于解决分布式系统中的任务调度和管理问题,文章详细介绍了XXL-JOB的架构,包括调度中心、执行器和Web... 目录一、xxl-job是什么二、使用步骤1. 下载并运行管理端代码2. 访问管理页面,确认是否启动成功

JAVA利用顺序表实现“杨辉三角”的思路及代码示例

《JAVA利用顺序表实现“杨辉三角”的思路及代码示例》杨辉三角形是中国古代数学的杰出研究成果之一,是我国北宋数学家贾宪于1050年首先发现并使用的,:本文主要介绍JAVA利用顺序表实现杨辉三角的思... 目录一:“杨辉三角”题目链接二:题解代码:三:题解思路:总结一:“杨辉三角”题目链接题目链接:点击这里

更改docker默认数据目录的方法步骤

《更改docker默认数据目录的方法步骤》本文主要介绍了更改docker默认数据目录的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1.查看docker是否存在并停止该服务2.挂载镜像并安装rsync便于备份3.取消挂载备份和迁

React实现原生APP切换效果

《React实现原生APP切换效果》最近需要使用Hybrid的方式开发一个APP,交互和原生APP相似并且需要IM通信,本文给大家介绍了使用React实现原生APP切换效果,文中通过代码示例讲解的非常... 目录背景需求概览技术栈实现步骤根据 react-router-dom 文档配置好路由添加过渡动画使用

SpringBoot使用minio进行文件管理的流程步骤

《SpringBoot使用minio进行文件管理的流程步骤》MinIO是一个高性能的对象存储系统,兼容AmazonS3API,该软件设计用于处理非结构化数据,如图片、视频、日志文件以及备份数据等,本文... 目录一、拉取minio镜像二、创建配置文件和上传文件的目录三、启动容器四、浏览器登录 minio五、

Rust中的Option枚举快速入门教程

《Rust中的Option枚举快速入门教程》Rust中的Option枚举用于表示可能不存在的值,提供了多种方法来处理这些值,避免了空指针异常,文章介绍了Option的定义、常见方法、使用场景以及注意事... 目录引言Option介绍Option的常见方法Option使用场景场景一:函数返回可能不存在的值场景

mysql重置root密码的完整步骤(适用于5.7和8.0)

《mysql重置root密码的完整步骤(适用于5.7和8.0)》:本文主要介绍mysql重置root密码的完整步骤,文中描述了如何停止MySQL服务、以管理员身份打开命令行、替换配置文件路径、修改... 目录第一步:先停止mysql服务,一定要停止!方式一:通过命令行关闭mysql服务方式二:通过服务项关闭

Servlet中配置和使用过滤器的步骤记录

《Servlet中配置和使用过滤器的步骤记录》:本文主要介绍在Servlet中配置和使用过滤器的方法,包括创建过滤器类、配置过滤器以及在Web应用中使用过滤器等步骤,文中通过代码介绍的非常详细,需... 目录创建过滤器类配置过滤器使用过滤器总结在Servlet中配置和使用过滤器主要包括创建过滤器类、配置过滤

Jenkins中自动化部署Spring Boot项目的全过程

《Jenkins中自动化部署SpringBoot项目的全过程》:本文主要介绍如何使用Jenkins从Git仓库拉取SpringBoot项目并进行自动化部署,通过配置Jenkins任务,实现项目的... 目录准备工作启动 Jenkins配置 Jenkins创建及配置任务源码管理构建触发器构建构建后操作构建任务

如何测试计算机的内存是否存在问题? 判断电脑内存故障的多种方法

《如何测试计算机的内存是否存在问题?判断电脑内存故障的多种方法》内存是电脑中非常重要的组件之一,如果内存出现故障,可能会导致电脑出现各种问题,如蓝屏、死机、程序崩溃等,如何判断内存是否出现故障呢?下... 如果你的电脑是崩溃、冻结还是不稳定,那么它的内存可能有问题。要进行检查,你可以使用Windows 11