Postman接口自动化测试实战,从0到1一篇彻底打通...

目录:导读

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


前言

postman中的测试

在postman中,可以通过添加脚本到请求当中,来使用动态变量、在请求之间传递数据以及编写测试。写在Pre-request Scripttab中的代码会在请求发送之前执行,而写在Teststab中的代码会在响应到达之后执行。

B1

postman测试用的语言是JavaScript。
所以对于前端开发者来说几乎没有学习成本。对于一个单独的请求来说,如果它有测试脚本,那么在请求发送之后,在Test Resultstab可以看到对应的测试结果。

另外为了可以快速编写测试脚本,postman提供了一些通用的代码片段(code snippets)。

对应的功能结构图:

B2

测试脚本编写

例子:

pm.test("response is ok", function () {pm.response.to.have.status(200);
});pm.test("environment to be production", function () { pm.expect(pm.environment.get("env")).to.equal("production");
});pm.test("response must be valid and have a body", function () {pm.response.to.be.ok;pm.response.to.be.withBody;pm.response.to.be.json;
});var schema = {type: 'object',properties: {appID: {type: 'number',},avatar: {type: 'string',}}
}
pm.test('Schema is valid', function() {var jsonData = pm.response.json().data;pm.expect(tv4.validate(jsonData, schema)).to.be.true;
});

pm.test():
为了遵循postman的规范,所有测试代码必须写在pm.test()的function里面。第一个参数是该测试的名称,第二个参数是一个返回boolean值的函数。也就是说这个函数如果返回true,表示测试通过,否则测试失败。

pm.expect():
这个断言函数是基于一个JavaScript测试库ChaiJS BDD构建的。通过类似的语法,你可以很方便的对响应里的数据或者一些变量进行断言。

pm.response.to.be.*:
这个对象可以提供对响应常见的检查。如状态码是否符合预期等。

tv4.validate():
第一个参数是被检验的数据,第二个参数是json schema。通过则返回true,失败则返回false。

运行测试:
我们通常会给多个api运行测试,因为我们有很多api,或者一个测试场景由多个api所组成。所以我们会把他们添加到一个集合(Collections)当中来运行。

postman(用户界面)

B3

B4

B5

这里注意,请求是按照Collections当中的顺序线性执行。

如果想改变执行顺序,可以修改Collections中的顺序,或者使用
postman.setNextRequest(“request_name”);

如果想要停止整个流程,可以执行postman.setNextRequest(null);

newman(令行工具)

1、从postman当中导出为json格式的Collections

B6

2、全局安装newman,npm install -g newman 3.执行命令,newman run sample-collection.json

请添加图片描述

结合Jenkins自动化

一个通用的方案是在代码在提交后,或者合入仓库分支后,执行 newman -c jenkins_demo.postman_collection --exitCode 1。

注意到–exitCode参数,这是为了告诉Jenkins,如果测试失败,将会返回值为1的退出码。这样就Jenkins就可以得知测试运行的成功与否了。

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

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

心若向阳,梦即绽放;困苦是阶梯,奋斗是密码。把握今天,超越昨天;坚持不懈,成就明天。不论遇到何种困难,努力奋斗,终将迎来辉煌的人生篇章!

梦想是航向远方的指南针,勇气是驱散黑暗的灯塔。坚持拼搏,不停追求,勇往直前,无畏风雨。踏上征程,放飞心灵,奋斗的汗水定将绽放出绚丽的辉煌!

在每一个艰难的时刻,都要记住,勇敢是战胜困难的力量。保持坚定信念,放飞梦想的翅膀,积极拼搏,奋斗不止。唯有努力,方能让生命绽放出最灿烂的光芒!

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

neo4j的CQL命令实例演示

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

dubbo之高可用

负载均衡 概述 负载均衡是指在集群中,将多个数据请求分散到不同的单元上执行,主要是为了提高系统的容错能力和对数据的处理能力。 Dubbo 负载均衡机制是决定一次服务调用使用哪个提供者的服务。 策略 在Dubbo中提供了7中负载均衡策略,默…

VS Code 使用cnpm下载包失败

一、 问题如下: 网上找到的解决方法是要在powershell中执行: Set-ExecutionPolicy RemoteSigned进行更改策略。 首先我们解释下这个Set-ExecutionPolicy RemoteSigned,Set-ExecutionPolicy 是一个 PowerShell 命令,用于控制脚本…

为什么商业基础软件需要开源

Bytebase 本身是一家商业软件公司,而作为最核心资产的代码从 Day 0 却是开源的。同时我们还是 star-history.com 的运营者,大家在各种开源渠道会看到它生成的图: 一直以来,常会被别人问起的一个问题,就是为什么 Byteba…

C# 使用FFmpeg.Autogen对byte[]进行编解码

C# 使用FFmpeg.Autogen对byte[]进行编解码,参考:https://github.com/vanjoge/CSharpVideoDemo 入口调用类: using System; using System.IO; using System.Drawing; using System.Runtime.InteropServices; using FFmpeg.AutoGen;namespace F…

最新AI创作系统ChatGPT源码V2.5.8/支持GPT4.0+GPT联网提问/支持ai绘画Midjourney+Prompt+MJ以图生图+思维导图生成!

使用Nestjs和Vue3框架技术,持续集成AI能力到系统! 最新版【V2.5.8】更新: 新增 MJ 官方图片重新生成指令功能同步官方 Vary 指令 单张图片对比加强 Vary(Strong) | Vary(Subtle)同步官方 Zoom 指令 单张图片无限缩放 Zoom out 2x | Zoom ou…

【BI系统】选型常见问题解答二

本文主要总结BI系统选型过程中遇见的常见问题,并针对性做出回答,希望能为即将选型,或正在选型BI系统的企业用户们提供一个快速了解通道。 有针对金蝶云星空的BI方案吗?能起到怎样的作用? 答:奥威BI系统拥…

CTF-Flask-Jinja2(持续更新)

放心,我会一直陪着你 一.知识一.在终端的一些指令1.虚拟环境2.docker容器二.SSTI相关知识介绍1.魔术方法2.python如何执行cmd命令3.SSTI常用注入模块(1)文件读取(2)内建函数eval执行命令(3)os模块执行命令(4)importlib类执行命令(5)linecache函数执行命令(6)subproc…

Android Socket使用TCP协议实现手机投屏

本节主要通过实战来了解Socket在TCP/IP协议中充当的是一个什么角色,有什么作用。通过Socket使用TCP协议实现局域网内手机A充当服务端,手机B充当客户端,手机B连接手机A,手机A获取屏幕数据转化为Bitmap,通过Socket传递个…

vim学习笔记(致敬vim作者)

vim cheat sheet 30. vim 删除大法 vim 删除某个字符之后改行的其他的字符?删除某行之后的其他行?删除某个字符之后的其他字符?【1】删除单个字符? 跳到要删除的字符位置 按下d键然后按下shift 4键 【2】删除某行之后的其他行…

搭建了个腾讯滑块服务,直接取ticket的,仅供测试.

最近闲着没事搭建了个TX滑块验证码服务,C#写的. 接口是rest接口 提交任务POST http://47.104.132.20:19090/task/addTask 提交数据: { "url": "https://ssl.captcha.qq.com/template/wireless_mqq_captcha.html?stylesimple&aid16&uin3557247785…