史上最强,Python自动化测试框架整理,搭建框架看这篇就够了...

news2024/11/17 19:33:17

目录:导读

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


前言

什么是测试框架呢?

框架是一组准则,一个体系结构,遵循这些准则可以产生有益的结果。测试框架就是为自动化测试脚本提供执行环境而搭建的支架,它是一套准则,例如编码标准,测试数据处理,对象库处理等。

在自动化脚本编写过程中遵循这些准则可产生有益的结果,例如增加代码重用,更高的可移植性,降低的脚本维护成本等。准则而非规则;

它们不是强制性的,你仍然可以在不遵循准则的情况下编写脚本。但是你会错过拥有框架的优势。

使用测试框架的好处主要有:
1、提高测试效率
2、降低维护成本
3、最少的人工干预
4、最大的测试范围
5、代码的可复用

常见的自动化测试框架

我接下来会站在实践角度,来说说常见的自动化测试框架。现在用的最多的就是,Web UI 自动化和接口自动化两块其次是App自动化

接口自动化测试方向:Python+requests+pytest+yaml+alluer+Jenkins;
web自动化测试方向:Python+selenium4+pytest+POM+allure+Jenkins;
app自动化测试方向:Python+appium+POM+pytest+allure+Jenkins;

需要大家注意的是,常见的 Robot Framework,Selenium 也可以单独称为框架,也可以称为工具。这些都是概念和术语,大家不必特别纠结。

通过上面的一些常见框架,你发现了什么?

它们都拥有共同特性:编程语言+单元测试框架+扫描编译工具+持续集成工具+数据库+项目管理工具,可以根据需求进行相应调整。

测试框架总体而言可以参考软件开发框架来构建,下面从软件开发框架原则中提取测试框架的属性:

1、测试框架是在测试开发过程中 提取特定领域测试方法共性部分形成体系结构(软件框架是软件开发过程中提取特定领域软件的共性部分形成体系结构)

2、测试框架的作用:在其基础上重用测试设计原则和测试经验,调整部分内容即可满足需求,可提高测试用例设计开发质量,降低成本,缩短时间;

3、不同技术测试领域有不同的测试框架类型;

4、测试框架不是一个现成可用的系统,是一个半成品,需要测试工程师基于它结合自己的测试对象知识转化为自己的测试用例

5、测试框架是提供给测试人员开发响应领域测试用例的测试分析设计工具;

6、测试框架不是测试用例集,而是通用的,具有一般性系统的主体部分。测试人员像填空一样,根据具体业务完成特定应用系统中与众不同的特殊部分

7、测试设计模式的思想(等价类,边界值)在测试框架中应用。

框架的组成部分

需要配置文件管理;
业务逻辑代码和测试脚本分离;
报告和日志文件输出;
自定义的库的封装 管理;
执行测试用例方式;
第三方插件的引入;
持续集成;

测试框架组成部分的解释

配置文件管理:
我们需要一各配置文件去控制一些环境信息、开关等,配置文件可以使
txt/xml/yaml/properties/ini等格式的文件,一般properties较多的使用在java代码里,本文是基于python开发的测试框架,所以我们会选择ini文件

业务逻辑代码和测试脚本分离:
将业务逻辑代码和测试脚本写到不同的目录的py文件中,这样可以做到代码复用、封装、代码重构,使测试项目的目录更加清晰,适合多人开发测试脚本,方便调试和维护

报告和日志文件的输出:
执行testcase的结果怎么样需要用报告来展示,一般采用第三方的插件来实现,如HTMLTestRunner,风格简单明了。

日志的输出很重要,如果发生错误,脚本执行失败,通过日志可以快速定位

用户自定义库:
在自己的测试项目中有很多功能需要重复调用,这样我们就写成一个公共方法,方法哦工具包下,方便每次调用,必须做到封装

管理和执行脚本:
python中的单元测试框架unittest/pytest使用效率非常高,负责管理测试用例集,执行测试用例

第三方插件:
有时候我们测试项目的一些功能需要借助第三方插件能够更好的实现,比如parameterized参数化 第三方html报告生成的插件 htmltestrunner 可以放在第三方插件包中管理

持续集成:
git svn ant maven Jenkins,我们会把这些整合到Jenkins达到持续集成,一键执行测试脚本

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

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

不论遇到多少挫折与困难,只要你保持坚持与努力,勇往直前,就能超越自我,创造属于自己的奇迹。相信自己的实力与潜力,勇敢追求,每一次奋斗都是一次进步,每一次努力都是一次蜕变。

人生犹如一场马拉松,不论起点如何,只要坚持奋斗,不放弃追求,才能超越自我,迎接属于自己的辉煌。相信自己的能力与潜力,勇往直前,每一步都是成长,每一次奋斗都是进步,成功将与你相伴而行。

在人生的舞台上,不怕困难与挫折,坚持奋斗的脚步,用汗水浇灌梦想的花朵。相信自己的才华与能力,不断努力,每一次奋斗都是一次进步,只有拼搏,才能书写属于自己的辉煌篇章。

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

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

相关文章

明星代言注意事项:确保代言活动成功的关键要素

对于商家而言,聘请明星代言自己的品牌产品,无非就是为了利用明星的人气为品牌加持热度,吸引明星粉丝和消费者的关注,增加产品转化,塑造品牌形象。明星代言是一项重要的市场营销策略,但同时也需要注意一些关…

美化与保护合二为一:3个功能厉害的水印app

每个人都有自己珍视的照片回忆,但在互联网上共享这些照片时,担心他人未经允许使用它们是很常见的。幸运的是,现在有了加水印软件,我们可以以有效的方式保护我们的珍贵照片。通过在图片上添加个性化的水印,你可以在不影…

textarea文本高亮选中

最近在实现原文/译文句段高亮对比显示,和有道翻译类似,如下图所示: 最初的解决方案是采用富文本编辑器,把所有句段信息都用HTML标签包裹,操作空间比较大,页面上需要的功能几乎都可以实现,但是由…

串口通讯接口类型:TTL、RS232和RS485(电平标准)

串口通讯接口类型:TTL、RS232和RS485 在串口通信中,常用的接口类型包括TTL、RS-232和RS-485,TTL、RS-232、RS422、RS-485是指的电平标准(电信号)。 通信协议规定了数据传输的规则和格式,包括数据的起始位、停止位、数据位数、校…

docker 搭建jenkins

1、拉取镜像 docker pull jenkins/jenkins:2.4162、创建文件夹 mkdir -p /home/jenkins_mount chmod 777 /home/jenkins_mount3、运行并构建容器 docker run --restartalways -d -p 10240:8080 -p 10241:50000 -v /home/jenkins_mount:/var/jenkins_home -v /etc/localtime:…

从零开始构建基于YOLOv5的目标检测系统

本博文从零开始搭建基于YOLOv5模型的目标检测系统(具体系统参考本博主的其他博客),手把手保姆级完成环境的搭建。 (1)首先Windows R输入cmd命令后打开命令窗口,进入项目目录,本博文以野生动物…

无涯教程-jQuery - jQuery.ajaxSetup( options )方法函数

jQuery.ajaxSetup(options)方法为将来的AJAX请求设置全局设置。 jQuery.ajaxSetup( options ) - 语法 $.ajaxSetup( options ) 这是此方法使用的所有参数的描述- options - 一组配置Ajax请求的键/值对,所有选项都是可选的。 Sr.No.Option & Remark1 asy…

Stack

文章目录 定义分类静态栈动态栈 算法应用 定义 在静态内存当中分配的叫做栈,在动态内存中分配的叫做堆。 **红色椭圆圈当中的就是在栈中分配的,蓝色下划线的就是在堆里分配的。**栈和堆表示的是分配数据的一种方式。静态局部变量是通过压栈和出栈来分配…

网络安全行业相关证书

一:前言 对于考证这个话题,笔者的意见是:“有比没有好,有一定更好,但不一定必须;纸上证明终觉浅,安全还得实力行”。很多人对于各种机构的考证宣传搞得是云里雾里,不知道网络安全行业…

【Java练习题汇总】《第一行代码JAVA》网络编程篇集合体系篇,汇总Java练习题——Socket 与ServerSocket、List和Set、Map~

Java练习题 网络编程篇&集合体系篇 1️⃣ 网络编程篇&集合体系篇 1️⃣ 网络编程篇&集合体系篇 一、填空题 在类集中存放单值的最大父接口是___________ ,存放一对值的最大父接口是___________ 。___________ 接口保存的数据是不允许重复的&#xff…

c语言复合赋值符和运算符的优先级问题

结论: 复合赋值符的优先级小于运算符 【练习1】 a * a / b的运算顺序是什么? a / b * a 【练习2】 x / 3 2 * 3 2 / 3 6 2 x 0

使用os库操作目录和文件

1. 获取本机操作系统的分隔符 # 导入os库 import os # 获取本机操作系统的分隔符 print(os.sep) 2. 获取本机操作系统的类型 如果是windows,是nt。 # 导入os库 import os # 获取本机操作系统的类型 print(os.name) 3. 获取当前的工作目录路径 # 导入os库 import…

RL vs 最优控制:用于轨迹跟踪的 LQR(使用 Python 代码)

一、说明 在本博客系列中,我们将了解最优控制的经典方法,这些方法在某种程度上为强化学习等更熟悉的主题奠定了坚实的基础。这两个领域之间存在着不可避免的共同边界,本系列旨在提出这些最优控制的形式化方法,作为强化学习方法的有…

[内网渗透]SUID提权

文章目录 [内网渗透]SUID提权0x01.什么是SUID?0x02.如何设置SUID?0x03.查找属主为root的SUID文件0x04.进行SUID提权1.find提权2.vim/vi/vim.tiny 以root权限修改文件3.bash提权4.less/more执行系统命令5.nano以root权限修改文件6.awk执行系统命令7.cp以r…

CHD6.2.1集群 Hive开启Iceberg

下载jar包 https://repo1.maven.org/maven2/org/apache/iceberg/iceberg-hive-runtime/1.0.0/iceberg-hive-runtime-1.0.0.jar 存放在/opt/cloudera/parcels/CDH/lib/hive/auxlib/ CDH集群修改hive配置 选择xml格式 粘贴即可 <property><name>iceberg.engine.hi…

QT: 完成服务器的实现

1> 思维导图 2> 手动完成服务器的实现&#xff0c;并具体程序要注释清楚 Widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTcpServer> //服务器类 #include <QTcpSocket> //客户端类 #include <QMessageBox> //…

小狐狸ChatGPT付费创作系统V2.1.4独立版 +WEB端+ H5端 + 小程序端(新增关注自动回复)系统搭建安装教程

PCu央小狐狸ChatGPT付费创作系统V2.1.4提供最新的对应版本小程序端&#xff0c;播播资源测试相比上几版本增加了关注公众号自动回复、扫码登陆自动回复功能&#xff0c;优化了部分细节。本版小程序端对应最新的2.1.4小程序前端。绘画功能建议采用其他绘画接口-意间AI&#xff0…

Python入门【变量的作用域(全局变量和局部变量)、参数的传递、浅拷贝和深拷贝、参数的几种类型 】(十一)

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱敲代码的小王&#xff0c;CSDN博客博主,Python小白 &#x1f4d5;系列专栏&#xff1a;python入门到实战、Python爬虫开发、Python办公自动化、Python数据分析、Python前后端开发 &#x1f4e7;如果文章知识点有错误…

nbcio-boot项目把springboot从2.3.5.RELEASE升级到2.7.10和mybatis-plus升级到最新的3.5.3.1的问题解决记录

考虑到原先版本比较老&#xff0c;今天把springboot从2.3.5.RELEASE升级到2.6.6和mybatis-plus升级到最新的3.5.3.1。 编译出现下面的问题 用参数 -e -X clean package后打印出更多的出错日志信息 at org.apache.maven.shared.filtering.DefaultMavenResourcesFiltering.filter…

大数据未来的前景怎么样?_光点科技

随着科技的迅猛发展和互联网的普及&#xff0c;大数据已成为当今社会中不可或缺的重要资源。大数据是指庞大而复杂的数据集合&#xff0c;这些数据通过高级计算技术进行处理和分析&#xff0c;可以揭示出有价值的信息和趋势。在过去几年中&#xff0c;大数据已经在各行各业产生…