百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程网 > 正文

你真的了解自动化测试框架么?Python+Requests+Pytest+Jenkins

yuyutoo 2025-01-31 16:03 3 浏览 0 评论

01.自动化测试框架

在学习自动化测试或者实践自动化测试时,我们一定会对一个名词不陌生,那就是“自动化测试框架”。

而有些人也将 Selenium、Appium 这样的工具也称之为“自动化测试框架”,那么到底自动化测试框架如何理解呢?

软件工程中的框架(framework),特指为解决一个开放性问题而设计的具有一定约束性的支撑结构。

在此结构上可以根据具体问题扩展、安插更多的组成部分(升级),从而更迅速和方便地构建完整的解决问题的方案。

根据以上框架的定义引申到自动化测试领域,我们可以定义自动化测试框架包括如下功能:

(1) 日志组件

记录和管理日志,方便定位问题,如 Log4j、logging 模块等;

(2) 测试报告

管理与生成测试报告,快速得到测试结果,如 Allure、HtmlReport 等;

(3) 测试静态资源

如配置文件、引用的其他静态资源管理,实现配置与测试脚本分离;

(4) 测试用例管理与执行

如 Java 语言体系 TestNG、Junit,Python 语言体系 UnitTest、Pytest 等;

(5) 测试数据管理

保存用例参数化数据,如可采用 Excel、YAML、CSV 格式文件,实现测试脚本与测 试数据分离;

(6) 公共模块(Common)

保存用例公共方法、通用操作;

(7) 驱动模块(Driver)

底层执行自动化测试引擎,如 Selenium Webdriver 网页端测试库、Appium client 移动端测试库、Requests/REST-assured 接口测试库。


其他辅助功能:

除了上述自动化测试框架基本组成成分之外,自动化测试框架还可以有更多其他的辅助功能,比如并行执行、失败重试、异常处理以及通过持续集成平台构建(如 Jenkins)。

总的来说,一个完善的自动化测试框架应该是具备高扩展性、可维护性、稳定性。如 Selenium、Appium 只是具备上述框架的部分功能而已,所以我们在选择自动化测试框架时更多的是多个工具/库的组合,

比如:Selenium+TestNG+Allure+Jenkins,Appium+TestNG+Allure+Jenkins 等等。


02.测试框架技术选型


目前常见的自动化测试类型包括接口自动化和 UI 自动化,目前市面上针对接口、UI 层面的自动化测试工具/框架有很多选择。

在进行技术选型之前首先要分析项目的架构和类型,如果项目主要通过接口的形式提供给其他服务使用,我们可以使用接口自动化。对于项目既有后端也有前端,在接口自动化层面的质量保证基础上再采用 UI 自动化。


接口自动化

目前市面上接口自动化测试技术都已经非常成熟,以下介绍几款比较主流的技术:

(1) Jmeter+Ant/Maven+Jenkins

Jmeter 由 Java 开发并开源,并且提供了可视化界面。通过 Jenkins 持续集成平台集成 Maven 或 Ant 插件,再通过 Maven 或 Ant 构建 Jmeter 脚本可以满足自动化测试持续集成。熟悉 Java 语言的情况下还可以对 Jmeter 做二次开发。

(2) Postman+Newman+Jenkins

Postman 是非常多测试人员会选择使用的一款接口测试工具,并且很多开发人员也会使用它对接口进行调试,上手简单并且功能强大。通

过 newman 可以支持命令行方式调用 Postman 测试用例执行,并且还可以通过 Jenkins 平台结合 newman 进行持续集成。

(3) Robotframework+RequestsLibrary+Jenkins

Robotframework(简称 RF),是一款基于关键字驱动的测试框架,主要通过封装关键字进行调用,使用 RequestsLibrary 测试库可以进行接口测试,RF 不需要懂编程语言也可以编写自动化测试用例。

(4) Java+REST-assured+TestNG+Jenkins

Java 语言体系中的 REST-assured 作为目前最流行的接口测试框架,基于 BDD 语法风格让编写接口测试用例变得非常简单,内置非常强大的功能如 hamcrest 断言及 Gpath 响应解析等,使用 TestNG 测试框架我们可以管理及执行测试用例。

(5) Python+Requests+Pytest+Jenkins

在 Python 语言体系中 requests 模块基于标准库 urllib 进行封装,支持其几乎所有特性,是目前最火的 python 语言接口测试库。

Pytest 同样属于 python 中的第三方单元测试库,相比标准库 Unittest 更加强大。


Web 自动化

目前应用最主流的的 Web 自动化框架还是 Selenium,其内置的 Selenium Webdriver 组件通过 JSON wire protocol 协议能够支持多款浏览器的自动化测试,包括 Chrome、Firefox、IE、Safari 等等。

Selenide 及 Katalon 这些自动化测试工具基于 Selenium 构建封装,其内部核心还是 Selenium Webdriver。

Java 语言技术栈:

Java+Selenium+TestNG+Jenkins

Python 语言技术栈:

Python+Selenium+Pytest+Jenkins

移动端自动化

移动端使用最为广泛的应该就是 Appium 了,Appium 是一个开源的自动化测试框架,支持 Android 和 iOS 上的 Web App、Native App 和 Hybrid App 的自动化测试。

Appium 基于 Selenium Webdriver 并添加了移动端相关的 API。

Java 语言技术栈:

Java+Appium+TestNG+Jenkins

Python 语言技术栈:

Python+Appium+Pytest+Jenkins

持续集成

自动化测试作为持续集成的重要一环,当开发部署新功能或更新功能时,持续集成平台运行自动化测试能够快速提供质量和定期反馈,目前成熟的持续集成平台非 Jenkins 莫属。

需要上述提到的自动化测试工具的安装包以及相关资料的朋友可以关注并私信我关键词“测试”免费领取

相关推荐

史上最全的浏览器兼容性问题和解决方案

微信ID:WEB_wysj(点击关注)◎◎◎◎◎◎◎◎◎一┳═┻︻▄(页底留言开放,欢迎来吐槽)●●●...

平面设计基础知识_平面设计基础知识实验收获与总结
平面设计基础知识_平面设计基础知识实验收获与总结

CSS构造颜色,背景与图像1.使用span更好的控制文本中局部区域的文本:文本;2.使用display属性提供区块转变:display:inline(是内联的...

2025-02-21 16:01 yuyutoo

写作排版简单三步就行-工具篇_作文排版模板

和我们工作中日常word排版内部交流不同,这篇教程介绍的写作排版主要是用于“微信公众号、头条号”网络展示。写作展现的是我的思考,排版是让写作在网格上更好地展现。在写作上花费时间是有累积复利优势的,在排...

写一个2048的游戏_2048小游戏功能实现

1.创建HTML文件1.打开一个文本编辑器,例如Notepad++、SublimeText、VisualStudioCode等。2.将以下HTML代码复制并粘贴到文本编辑器中:html...

今天你穿“短袖”了吗?青岛最高23℃!接下来几天气温更刺激……

  最近的天气暖和得让很多小伙伴们喊“热”!!!  昨天的气温到底升得有多高呢?你家有没有榜上有名?...

CSS不规则卡片,纯CSS制作优惠券样式,CSS实现锯齿样式

之前也有写过CSS优惠券样式《CSS3径向渐变实现优惠券波浪造型》,这次再来温习一遍,并且将更为详细的讲解,从布局到具体样式说明,最后定义CSS变量,自定义主题颜色。布局...

柠檬科技肖勃飞:大数据风控助力信用社会建设

...

你的自我界限够强大吗?_你的自我界限够强大吗英文

我的结果:A、该设立新的界限...

行内元素与块级元素,以及区别_行内元素和块级元素有什么区别?

行内元素与块级元素首先,CSS规范规定,每个元素都有display属性,确定该元素的类型,每个元素都有默认的display值,分别为块级(block)、行内(inline)。块级元素:(以下列举比较常...

让“成都速度”跑得潇潇洒洒,地上地下共享轨交繁华
让“成都速度”跑得潇潇洒洒,地上地下共享轨交繁华

去年的两会期间,习近平总书记在参加人大会议四川代表团审议时,对治蜀兴川提出了明确要求,指明了前行方向,并带来了“祝四川人民的生活越来越安逸”的美好祝福。又是一年...

2025-02-21 16:00 yuyutoo

今年国家综合性消防救援队伍计划招录消防员15000名

记者24日从应急管理部获悉,国家综合性消防救援队伍2023年消防员招录工作已正式启动。今年共计划招录消防员15000名,其中高校应届毕业生5000名、退役士兵5000名、社会青年5000名。本次招录的...

一起盘点最新 Chrome v133 的5大主流特性 ?

1.CSS的高级attr()方法CSSattr()函数是CSSLevel5中用于检索DOM元素的属性值并将其用于CSS属性值,类似于var()函数替换自定义属性值的方式。...

竞走团体世锦赛5月太仓举行 世界冠军杨家玉担任形象大使

style="text-align:center;"data-mce-style="text-align:...

学物理能做什么?_学物理能做什么 卢昌海

作者:曹则贤中国科学院物理研究所原标题:《物理学:ASourceofPowerforMan》在2006年中央电视台《对话》栏目的某期节目中,主持人问过我一个的问题:“学物理的人,如果日后不...

你不知道的关于这只眯眼兔的6个小秘密
你不知道的关于这只眯眼兔的6个小秘密

在你们忙着给熊本君做表情包的时候,要知道,最先在网络上引起轰动的可是这只脸上只有两条缝的兔子——兔斯基。今年,它更是迎来了自己的10岁生日。①关于德艺双馨“老艺...

2025-02-21 16:00 yuyutoo

取消回复欢迎 发表评论: