2023全网最火的接口自动化框架对比 (建议收藏),2024年最新让人茅塞顿开

接口测试转换成自动化 case 非常方便,运行也比较简单;
postman 是 google 维护,可靠;

缺点:
仅支持 Node.js 语言,而 js 不具有通用性;
不能操作文件相关的操作,不能读写数据库,不能使用非 HTTP 协议
不支持配置测试用例优先级、测试用例分组功能,只能按顺序执行;
测试用例中动态数据/测试准备功能/测试断言都必须提前定义好,不能满足所有场景的要求 (如数据库交互) ;
测试用例是 json 格式,查阅、维护及更改都十分不变;
测试用例维护成本高,当有变更时,需要再次导入到 newman 工程中;
框架的扩展性差,postman 的 CI 集成以及扩展封装都需要单独的开发新的项目兼容 postman 本生的框架语言
不支持运行时动态传入环境变量
不支持失败重试
仅适合业务逻辑不复杂的小型项目

③.使用要求
对 http 协议有基本的了解
了解接口测试概念
工具的基本使用
请求头,请求体能分清即可

④.适用业务
业务中接口量大
业务场景独立,关联关系弱
小型 API 项目的自动化
短期项目的 API 回归测试
编码能力较弱的测试团队或初学者

⑤.环境依赖
需要 Node.js 执行环境
需要安装 newman ,npm install -g newman
安装用到的插件,如 htmlextra,allure 等

⑥.应用步骤
1.用例要求:接口用例中做了较完善的接口管理、全局变量/环境变量定义、动态参数应用、请求参数化、实现了接口关联、所有的接口均有状态/性能断言 + 业务断言
2.生成项目:导出接口测试用例、环境变量、全局变量、数据驱动文件等
3.配置项目:框架单独章节再行介绍具体配置过程
4.运行项目
● 本地使用 CLI 执行自动化

● 配置到 jenkins job 中
5.查看报告(其他框架都是使用 Allure 输出报告,不再赘述)

6.代码上传 gitlab/github 
7.接入持续集成,并配置定时任务(其他框架都支持通过极库云或 jenkins 做任务调度,不再赘述)
● 接入极库云流水线

● 接入 Jenkins

2、JMeter+Ant 框架

①.简介
JMeter 可以用于性能测试,在性能测方面很强大,也可以用于自动化接口测试。

②.优缺点
优点:
支持参数化
不需要写代码
支持协议较多,如 HTTP、FTP、soap、websocket、jdbc、thrift、dubbo 等
支持数据库操作

缺点:
创建接口用例效率不高
学习成本高
需要会 jmeter 工具的基本使用
会数据库基本操作及编写 SQL 语句
了解用到的非 http 协议,如项目【自研长连接】使用的 websocket 协议

③.使用要求
jmeter 的学习成本主要在 jmeter 工具的使用上
对于已经掌握工具使用的人,利用 jmeter 进行自动化测试只要会 Ant 配置即可

④.适用业务
涉及数据库操作
涉及非 https 接口的业务
业务需要进行性能测试,已完成主要接口脚本编写

⑤.环境依赖
不同版本 JMeter 对 Java 版本的要求不尽相同。比如:
JMeter3.3 仅支持 Java 8
JMeter4.0 要求 Java 8+(表示大于等于 Java 8 版本)
JMeter5.0 以上要求 Java 8+
安装 ant 插件

⑥.应用步骤
1.用例要求:接口用例中做了较完善的接口管理、恰当的组件使用、动态参数应用、请求参数化、实现了接口关联、所有的接口均有状态断言 + 业务断言
2.生成项目:编写测试用例、导出测试用例,数据驱动文件等
3.配置 Ant 的 build.xml 文件
4.运行项目
● 本地使用 ant 执行自动化

● 配置到 jenkins job 中

3、HttpRunner+request

①.简介
HttpRunner 是一款面向 HTTP(S) 协议的通用测试框架,只需编写维护一份 YAML/JSON 脚本,即可实现自动化测试、性能测试、线上监控、持续集成等多种测试需求。
支持 HTTP(S) / HTTP2 / WebSocket /thrift /dubbo 等网络协 213 议,涵盖接口测试、性能测试、线上监控、持续集成、数字体验监测等测试类型。
简单易用,功能强大,具有丰富的插件化机制和高度的可扩展能力。
只需编写维护一份 YAML/JSON 脚本
前身 ApiTestEngine (2016 年),2017 年正式更名 HTTPRunner,并 PyPI 托管

②.优缺点
设计理念和主要特征在官网有详细列出,不再赘述。这里主要列举一下优缺点。

优点:
基于 YAML/JSON 格式,专注于接口本身的编写
接口录制功能,操作简单,只需 3 步即可完成测试,对于较为简单的场景尤其方便
接口编写简单,容易上手,对代码编写能力要求较低
生成测试报告,可以自动生成测试报告,框架自带的测试报告模板基本满足需求,支持自定义测试报告的模板
分层机制,适合冒烟流程测试,无需重复编写接口,只要根据需求灵活调用即可

缺点:
HttpRunner 没有编辑器插件,本身就是一个配置文件,所以只要是合法的 YAML/JSON 格式,就算写错了看没有校验也不出来,只有运行起来才知道
框架推出时间相对较短,官方文档没有特别详细的说明,且网上资料相对其他主流测试框架较少
扩展不方便,数据驱动需要依赖其他接口返回,且有先后顺序,这个比较麻烦,暂时框架不支持很优雅的解决这种情况.可以通过分步来解决这个问题
由于用例的数据导出只能在一个测试周期中,所以我们还要解决测试数据传递的问题
通过写入文件的方式解决.接口返回的测试数据写入文件,然后需要的地方通过读取文件的方式读回数据

③.使用要求
有一定的 python 基础
会使用 charles/fiddler/postman
对 request 框架有基本了解,至少会 get、post 请求

④.适用业务
接口关联关系弱
业务逻辑分支多,场景多
接口/场景复用性高

⑤.环境依赖
python V3.6+
pycharm
httprunner 3.1.11 以下 (!重要,httprunner V4 已经去掉了 startproject 脚手架,不适合新手快速接入) 
Anacanda

⑥.框架实现功能
Ⅰ. 概述
二次封装采用了 V2.0 和 V3.0 结合的方式:
1.使用 V2.0 的分层理念,降低场景 case 编写的重复性和后期维护成本
2.在 V3.0 上运行。使用了 V3.0 集成的 pytest 功能,包括 parameters、fixture 、hooks、allure 以及其他 pytest 生态的众多插件
3.用例管理仍旧使用 yaml,使用 V2.0 的 har2case 方法生成 yaml 用例,对代码基础薄弱的同学相对友好
4.保留了 V3.0 的链式调用和语法检查,对有代码基础的同学编,提供了智能语法提示写用例时,提供语法检查
5.报告的生成使用了 V3.0 引入的 allure,报告更加美观详细
6.可移植性,支持 conda 虚拟环境 +requirements.txt 复制环境

Ⅱ. 主要功能已实现,后续功能根据业务需要持续更新
参数化
业务断言
数据驱动
测试分层
util 封装
环境变量
配置管理
场景测试用例
setup/teardown,不同作用范围
热加载
动态参数
报告
持续集成

Ⅲ.整体运转流程

⑦.应用步骤
1.用例要求:
所有基础的接口都要录制全
提前设计好要覆盖的场景,录制用例时,不要做多余的操作
放入指定的用例存放目录
2.将 har 文件转换成 yaml 用例或者 pytest 用例
3.配置好 ini 文件
4.运行项目
● 本地执行

● 配置到 jenkins job 中运行

4、pytest+request

①.简介
Pytest 是 Python 的一种第三方单元测试框架,全功能且非常成熟,同自带的 Unittest 测试框架类似,相比于 Unittest 框架使用起来更简洁,效率更高。它的目的是让单元测试变得更容易,并且也能扩展到支持应用层面复杂的功能测试。

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数软件测试工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上软件测试开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注软件测试)
img

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注软件测试)
[外链图片转存中…(img-lVnQHjqA-1712634237307)]

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 25
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PDO(PHP数据对象)和SDO(服务数据对象)是两种在web开发中常用的数据访问技术。 首先,我们来看PDO。PDO是PHP中对数据库操作的一种封装,它提供了一种统一的接口,可以连接各种不同类型的数据库,比如MySQL、SQLite、Oracle等。通过使用PDO,我们可以使用相同的代码来操作不同的数据库,而不需要关心各种数据库的不同细节。这样可以大大简化我们的开发工作。 一个实际的应用实例是,我们想要在一个网站中显示一些学生的信息,这些信息存储在数据库中。我们可以使用PDO来连接数据库,并执行查询语句来获取学生信息。然后,我们可以使用PDO提供的方法来获取查询结果,并将结果显示在网页上。通过使用PDO,我们可以轻松地连接数据库和执行查询,从而实现我们的需求。 接下来,我们来看SDO。SDO是一种用于访问和操作结构化数据的技术。它可以将数据库中的数据以对象的形式表示,并提供了一些方便的方法来访问和操作这些对象,比如获取对象的属性、修改对象的属性等。SDO可以使得我们更加方便地对数据库中的数据进行操作。 一个具体的应用实例是,我们想要在一个电子商务网站中更新商品的库存信息。我们可以使用SDO来表示商品对象,并通过SDO提供的方法来获取商品的库存信息,并对库存进行更新。通过使用SDO,我们可以方便地访问和操作商品的库存信息,从而实现我们的需求。 综上所述,PDO和SDO在web开发中都有着重要的应用。通过使用它们,我们可以简化我们的开发工作,更加方便地访问和操作数据库中的数据。这些应用实例让我们茅塞顿开,看到了PDO和SDO的强大之处。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值