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

news2024/11/16 8:29:52
前言

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

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

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

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

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

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

相关文章

ICT测试探针市场报告:前五大厂商占有大约26.0%的市场份额

ICT测试探针,即在线测试(ICT)探针,是专门用于电路板(特别是PCBA)电气测试的重要工具,通过这些探针接触PCB上的测试点,来检测电路板上元器件的连通性和电气性能,从而保证电…

视频超分辨率重建——AnimeSR网络测试教程(详细图文教程)

💪 专业从事且热爱图像处理,图像处理专栏更新如下👇: 📝《图像去噪》 📝《超分辨率重建》 📝《语义分割》 📝《风格迁移》 📝《目标检测》 📝《暗光增强》 &a…

2021CCPC网络赛:G - Function HDU - 7106

题意 定义g(x)为x的各数位之和 求该方程: 在给定x范围内的最小值 思路: 一个x对应一个g(x),一个g(x)对应多个x 由于g(x)最多取到54,所以可以枚举所有的g(x)所以想到当取到g(x)的时候,只取能使原方程f(x)最小的那几个x 当枚举g(x)的时候,g(x)看作一个常数,此时方程…

干货分享:精选四大Win10录屏工具推荐!

无论你是制作教程视频、游戏实况分享还是日常办公中的演示记录,一款好的录屏软件都能让你事半功倍。Windows 10作为当下最流行的桌面操作系统之一,本文推荐几款优秀的win10录屏工具 福昕录屏大师 链接:www.foxitsoftware.cn/REC/ 福昕录屏…

石油钻杆对直线度测量的需求

关键字:石油钻杆直线度测量仪,钻杆测量仪,钻杆直线度 石油钻杆对直线度测量的需求主要源于其在石油勘探和开发过程中的关键作用以及严苛的工作环境。以下是对这一需求的详细分析: 一、石油钻杆的功能与重要性 石油钻杆是石油钻探…

十五分钟速通Vue

绑值语法( {{}} ) <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> </head…

热失控传感器在换电站消防安全解决方案中的应用

随着新能源技术的飞速发展&#xff0c;工程车辆行业正逐步向绿色化、电动化转型&#xff0c;作为这一转型过程中的关键设施&#xff0c;换电站的数量日益增多。作为电池集中储存与交换的核心区域&#xff0c;换电站的消防安全问题成为了不容忽视的重大挑战。特别是电池仓&#…

骑行适合戴的耳机?开放式耳机测评

当我们在享受骑行的乐趣时&#xff0c;音乐往往是不可或缺的伴侣。但选择耳机却是一门学问&#xff0c;尤其是在安全和听觉享受之间找到平衡。今天&#xff0c;我就来和大家探讨一下&#xff0c;在骑行时究竟是选择开放式耳机还是封闭式耳机。 骑行时选择耳机的考量因素 1.安全…

二手电脑配置给你不一样的成就感之三

近期和着了魔一样&#xff0c;一直在搜罗二手乐色&#xff0c;之前说过的推荐配置基本都试了一遍&#xff0c;今天来说下APU系列和E3系列&#xff0c;还是那个选择&#xff0c;主板30以下&#xff0c;cpu二十以下&#xff0c;这次有增加了二手风扇&#xff0c;二手固态&#xf…

vue part 5

生命周期 <!DOCTYPE html> <html><head><meta charset"UTF-8" /><title>引出生命周期</title><!-- 引入Vue --><script type"text/javascript" src"https://cdn.jsdelivr.net/npm/vue/dist/vue.js&quo…

filezilla使用教程(window下filezilla使用教程)

filezilla使用教程&#xff08;window下filezilla使用教程&#xff09; 一、安装与配置 首先&#xff0c;你需要从FileZilla的官方网站下载并安装适合你操作系统的版本。安装完成后&#xff0c;打开FileZilla&#xff0c;你将看到一个简洁的用户界面。 在FileZilla中&#x…

day-43 Z 字形变换

思路 只需要依次按照行进行遍历即可 解题过程 第一行位置&#xff1a;0 2*(numRows-1) 4*(numRows-1) 第二行位置&#xff1a;1 2*(numRows-1)-1 2*(numRows-1)1 。。。。。。 注意&#xff1a;当numRows为1时&#xff0c;直接返回s Code class Solution {public String con…

Android 获取安装包的签名,获取签名文件的MD5值

一般情况下通过下面的语句就开业获取MD5值; keytool -list -v -keystore 签名文件.jks -alias 别名也可以直接:keytool -list -v -keystore 签名文件.jks但结果只有SHA1和SHA256,没有MD5值; 是因为升级java JDK以后 keytool 不支持MD5,所以就需要像其他的办法; 解决办…

西门子PLC、倍福PLC如何接入ThingsKit物联网平台?

随着工业4.0的推进&#xff0c;物联网(IoT)技术在智能制造领域的应用日益广泛。本文将探讨如何将西门子PLC和倍福PLC接入ThingsKit物联网平台&#xff0c;实现工业设备的远程监控与管理。 引言 在智能制造和工业自动化中&#xff0c;PLC&#xff08;可编程逻辑控制器&#xf…

[000-01-001].第06节:Shell环境变量深入学习

1、Shell环境变量深入&#xff1a;加载流程原理介绍 本节目标 1.能够说出交互式Shell与非交互式Shell2.能够说出登录Shell与非登录Shell环境 1.1.Shell工作环境介绍 用户进入linux系统就会初始化Shell环境, 这个环境会加载全局配置文件和用户个人配置文件中环境变量.每个脚本文…

【项目篇】WS2812 炫彩LED灯驱动笔记(C51/STM32)

优信电子:51系列驱动WS2812 3528 幻彩雾状 贴片式发光二极管 XL-3528RGBW-WS2812B C51 驱动 使用 C51 单片机&#xff08;如 8051 系列&#xff09;驱动 WS2812 全彩 LED 需要仔细考虑 WS2812 的时序要求&#xff0c;因为 WS2812 使用的是单线通信协议&#xff0c;而 8051 系…

JavaEE(2):前后端项目之间的交互

现在&#xff0c;在网页中通过超链接&#xff0c;表单就可以向后端发送请求&#xff0c;后端也可以正常响应内容。 以前通过表单访问后端的请求方式称为同步请求 同步请求 当网页与后端交互时&#xff0c;前端不能再进行其他操作 服务器端响应回来的内容&#xff0c;会把整个浏…

1895. 二分查找右侧边界

代码 #include<bits/stdc.h> using namespace std; int a[100010],n,q; int yc(int x) {int l1,rn,mid;while(l<r){mid(lr)/2;if(x<a[mid]) rmid-1;else if(x>a[mid]) lmid1;}if(a[l-1]x) return l-1;else return -1; } int main() {int i,x;cin>>n;for(…

迷雾大陆游戏辅助:VMOS云手机强势辅助宠物推荐!

在《迷雾大陆》游戏中&#xff0c;选择合适的宠物是提升战斗力的关键。通过使用VMOS云手机&#xff0c;你可以体验到更为顺畅的游戏过程。VMOS云手机为《迷雾大陆》专门定制了专属的云手机版本&#xff0c;内置游戏安装包&#xff0c;不需要重新下载安装。此外&#xff0c;VMOS…

第一次使用Visual Studio社区版

由于C代码的需要&#xff0c;我开始尝试使用VS。 下载 下载地址&#xff1a;https://visualstudio.microsoft.com/zh-hans/downloads/ 网上关于专业版的教程较少&#xff0c;所以我猜测需求不大&#xff0c;于是我也下载社区版。 安装地址&#xff1a; &#xff08;工作负荷…