据说这是最全的,App自动化测试思路总结,从0到1实施...

news2024/11/19 11:23:09

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

1、编程语言选择

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

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

对于初学者来说,Python语法简洁,可读性强,易于学习。
有强大的第三方库,编写脚本效率更高。
Python中的Pytest自动化测试框架是目前最流行的测试框架之一。

2、UI测试框架选择

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

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

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

3、选择框架

根据实际情况选择合适的框架。
以下情况可以优先选择网易的Airtest (Airtest官网):
无编程基础
游戏测试
测试场景较为单一(Appium相对来说较为笨重)

支付宝小程序自动化(博主目前使用Airtest集成的Poco框架做支付宝小程序自动化测试)

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

4、单元测试框架选择

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

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

python主流的单元测试框架:
unittest,Python自带的单元测试框架;
pytest,基于unittest开发,易用性好,信息更详细,插件众多;
robot framework,基于Python的关键字驱动测试框架,有界面,自带报告及log,功能完善,清晰美观;

这里强烈推荐使用pytest,功能强大且容易上手,官方文档为英文,中文可参考Pytest 使用手册。

5、测试环境搭建

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

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

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

开发语言环境:
建议安装python 3以上的版本,官方已经停止对python2版本的更新维护。

UI自动化测试框架环境搭建:
windows环境下搭建Appium请参考博客appium环境搭建,Mac下搭建Appium稍微复杂点,后续再继续分享。

若选择Airtest框架的话,请参考官网。

6、脚本编写

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

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

选择测试报告:
不同的开发语言、不同的单元测试框架可选用不同的测试报告。在python中,unittest框架使用HTMLTestRunner或BSTestrunner生成测试报告,可参考博客unittest单元测试框架。Pytest框架使用pytest-html生成报告或通过allure定制测试报告。

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

7、Jenkins集成

根据上述步骤编写完成整个app UI自动化测试项目,且运行一段时间稳定后,就可以考虑进行Jenkins的集成,请参考博客Jenkins集成appium自动化测试(Windows篇) 或 远程Jenkins新增Mac节点。

8、总结

总结APP UI自动化可使用以下几种实现方式:
python + appium + unittest + HTMLTestRunner;
python + appium + pytest + pytest-html / allure;
python + Airtest(AirtestIDE);
python + Poco + pytest + pytest-html / allure;

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

心存勇气,追逐梦想,奋斗是拥抱成功的征程。无论风雨如何,坚持努力,绽放才华与智慧。相信自己的实力,超越极限,铸就辉煌人生,让每一天都成为奋斗的绚丽画面!

执着追寻,不畏艰辛,奋斗是书写辉煌的笔墨。勇敢战胜困难,磨砺自身的意志力,唯有不断努力,才能创造属于自己的辉煌人生。

砥砺前行,梦想不停,奋斗是拓展无限可能的钥匙。坚守初心,攀登高峰,只有勇往直前,才能书写属于自己的辉煌篇章。相信自己的力量,坚定信念,绽放才华,创造璀璨人生!

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

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

相关文章

Open3d——根据距离参数给点云上渐变色

找了半天网上都没有开源的根据距离进行点云渐变色上色的代码,所以写一个方便自己和大家的使用~ 渐变色生成代码 输入点云shape为[N,3],我这里使用的是nuScenes数据集,生成的点云使用到中心点的距离作为参数,进行渐变,…

XML(eXtensible Markup Language)

目录 为什么需要XML? 一 XML语法 1.文档声明 2.元素 语法: 3.属性 4.注释 5.CDATA节 二 树结构 三 转义字符 四 DOM4J 1.XML解析技术 2.dom4j介绍 3.dom4j基本使用 XML 指可扩展标记语言(eXtensible Markup Language)。 XML 被设计用来传…

SQL-每日一题【1179. 重新格式化部门表】

题目 部门表 Department: 编写一个 SQL 查询来重新格式化表,使得新的表中有一个部门 id 列和一些对应 每个月 的收入(revenue)列。 查询结果格式如下面的示例所示: 解题思路 1.题目要求我们重新格式化表,…

leetcode 1480.一维数组的动态和

⭐️ 题目描述 🌟 leetcode链接:一维数组的动态和 ps: 动态数组求和其实就是当前 i 位置的值等于 0 - i 的求和,控制好循环条件即可。 代码: /*** Note: The returned array must be malloced, assume caller calls…

4000字,详解数据管理之简介篇

DAMA-DMBOK 2.0既 DAMA 数据管理知识体系指南共分为17章,是从事数据治理人员的参考宝典。也CDMP及CDGA、CDGP认证的考试用书。 我在这里将17个章节根据个人理解分为数据管理简介、数据管理框架、数据处理伦理、数据管理组件、数据管理组织、大数据与数据科学和数据…

阿里云容器服务助力极氪荣获 FinOps 先锋实践者

作者:海迩 可信云评估是中国信息通信研究院下属的云计算服务和软件的专业评估体系,自 2013 年起历经十年发展,可信云服务评估体系已日臻成熟,成为政府支撑、行业规范、用户选型的重要参考。 2022 年 5 月国务院国资委制定印发《…

FTP可能是免费且易于使用,但这就是问题所在

当团队里的某个人发现他们需要马上发送的文件太大,无法通过电子邮件发送时,就会陷入困境。另一个同事开始用电子邮件发送账号或密码,然后意识到,也许电子邮件不够安全,FTP替代,托管文件传输。 FTP可能是免费…

线扫激光算法原理

一:线扫激光算法原理 激光器发出的激光束经准直聚焦后垂直入射到物体表面上,表面的散射光由接收透镜成像于探测器的阵列上。光敏面于接收透镜的光轴垂直。如图: 当被测物体表面移动x,反应到光敏面上像点位移为x’。a为接收透镜到物体的距离(物距),b为接收后主面到成像…

HCIE-Security 安全策略技术——流量处理

一、防火墙安全策略原理及配置 1.包过滤技术 对需要转发的数据包,先获取包头信息,然后和设定的规则进行比较,根据比较结果对数据包进行转发和丢弃 2.包过滤技术进阶——安全策略 包过滤:五元组,ACL 安全策略&#…

主动带宽控制工具

停机和带宽过度使用是任何组织都无法避免的两个问题。随着企业采用 BYOD 文化,通过网络的流量负载可能很重,导致网络拥塞并使网络容易受到网络攻击。为了解决这个问题,企业需要全面的监控策略来保护网络,当看似大量的流量进入网络…

通过MySQL删除Hive元数据信息

之前遇到过一个问题,在进行Hive的元数据采集时,因为Hive表的文件已经被删除了,当时是无法删除表,导致元数据采集也发生了问题,所以希望通过删除Hive表的元数据解决上述问题。 之前安装时,经过特定的配置后…

Qt应用开发(基础篇)——数值微调输入框QAbstractSpinBox、QSpinBox、QDoubleSpinBox

目录 一、前言 二、QAbstractSpinBox类 1、accelerated 2、acceptableInput 3、alignment 4、buttonSymbols 5、correctionMode 6、frame 7、keyboardTracking 8、readOnly 9、showGroupSeparator 10、specialValueText 11、text 12、wrapping 13、信号 二、Q…

zabbix监控mysql容器主从同步状态并告警钉钉/企业微信

前言:被监控的主机已经安装和配置mysql主从同步,和zabbix-agent插件。 mysql创建主从同步:http://t.csdn.cn/P4MYq centos安装zabbix-agent2:http://t.csdn.cn/fx74i mysql主从同步,主要监控这2个参数指标&#xf…

java -jar指定外部配置文件

场景 spingboot项目部署jar时,需要时常修改配置,为了方便,将配置文件放到jar包外 操作步骤 在jar包同级目录下创建config文件夹(位置没有强制要求,为了方便而已) 在jar包同级目录下创建start.bat文件,并编辑内容 echo off :: 命令窗口标题 title yudibei_performance_tes…

嘉楠勘智k230开发板上手记录(一)

一、前言 因为是小白,对于硬件接触不多,有什么错误欢迎指出。 环境:win11wsl2的ubuntu22.04 官方github kendryte/k230_docs: Kendryte K230 SDK Docs (github.com) 参考的文档 :k230_docs/zh/01_software/board/K230_SDK_使用说明.md at…

图像 检测 - YOLOv3: An Incremental Improvement (arXiv 2018)

YOLOv3: An Incremental Improvement - 增量改进(arXiv 2018) 摘要1. 引言2. 处理2.1 边界框预测2.2 类别预测2.3 跨规模预测2.4 特征提取器2.5 训练 3. 我们的做法4. 我们尝试过但没有成功的事情5. 这一切意味着什么References 声明:此翻译仅…

数据库系列之(一)SQL基本用法总结

文章目录 前言一、数据库是什么?二、数据库的作用是什么?三、数据库的种类以及常用的数据库四、SQL常用方法总结1.基本sql语句2.对数据进行限定和排序3.处理单行函数4.多表查询5.分组函数6.非关联查询与关联查询7.高级查询8.更多用法 总结 前言 当今信息…

测试岗?从功能测试进阶自动化测试开发,测试之路不迷茫...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 测试新人在想什么…

visual studio 生成dll文件以及修改输出dll文件名称操作

目录 visual studio 生成dll文件以及修改dll文件名称一、准备测试代码二、设置导出dll属性三、生成dll文件 .lib .dll .pdb 的简单介绍dll文件使用方式lib文件使用方式1、动态链接 (原理)2、静态链接: visual studio 生成dll文件以及修改dll文…

【雕爷学编程】 MicroPython动手做(35)——体验小游戏

知识点:什么是掌控板? 掌控板是一块普及STEAM创客教育、人工智能教育、机器人编程教育的开源智能硬件。它集成ESP-32高性能双核芯片,支持WiFi和蓝牙双模通信,可作为物联网节点,实现物联网应用。同时掌控板上集成了OLED…