(接口测试)第六章 postman高级使用(如何使用postman去准备测试脚本)

postman断言

每一个用例唯一的对应一个请求数据;

断言就是代替人工,实现工具代替人工自动判断预期结果和实际结果是否一致;

使用postman如何去实现断言?

响应的数据最重要的是响应报文,状态码和响应体;

所以说返回的响应状态码是必须做出判断的;一般都是200的状态码

判断响应体,一个是判断响应体是否包含某个字符串,一个是判断响应体中的key是否使是们预期的value值,这些都是使用断言的方法;

断言--响应状态码

这里是断言书写的位置,但是这里不是专门用来书写

断言列表是可以手动的生成的;

点击就会生成对应的左侧代码(图中用来去断言响应状态码)

图中的代码是用JavaScript写的,作用是为了断言响应状态码是否为200

pm代表的是postman的一个实例,有了实例之后就可以进行调用方法,test是实例的测试方法;

参数是可以修改的,不会影响断言的结果;

匿名函数就是指没有函数名花括号里面的就指的是函数体,所以整个里面就是叫做匿名函数调用;

上面代码里面的意思就是:响应结果当中应该是有响应状态码200,200是指的是预期结果,不是实际结果;

是在这里查看响应结果!!查看断言,绿色代表断言通过,红色表示断言失败

这一段只是一段提示信息,没有什么实质性的作用,是显示给用户断言结果的提示性的文字

可以根据需求去修改字符串中的文字

下面的才是在做真正的断言!!!!

断言包含字符串

断言包含字符串是在响应体当中去判断的,需要记忆大概;

一个test请求当中可以有多个请求断言;

选中一个请求,ctrl+d,可以进行复制请求

except的意思就是期望

期望在postman的响应结果当中应该包含XXX(这个就是预期结果),实际需要替换成自己需要的字符串信息。

断言json数据

其中,value对应的是键值对中的键,后面括号中的内容对应的值是值

js中var定义变量

将整个json响应体赋值给jsondata

这行代码要记住

pm的意思就是postman

eql后面的值必须完全相同 否则就会返回报错

postman断言工作原理

工作原理是为了给下面的关联做铺垫

postman内部是看不到的,但是要想象出来;

界面中的内容是已经写好的,是确实存在的,是界面显示出来的数据-----点击按钮发送请求(send)

服务器接收到http请求进行解析,解析完成组织响应,服务器将数据回发,此时这个过程当中,断言并没有参与进来,因为断言是对响应结果进行断言的;断言是在收到http的响应包之后进行的;

回发的响应结果是先进入postman内部,在内部先进行http的响应体的解析;在包中拿到状态码和响应体;这个过程要执行tests中的代码;

tests中代码的执行要再http响应的时候解析完响应包的时候再执行

最后显示响应结果在postman界面当中!!!

这其中要明白test中代码的执行时间

postman关联

当接口和接口之间,有依赖关系,需要借助于postman关联技术:

例如登录接口返回的令牌数据,被添加员工接口所依赖;

A和B之间是有接口关系的,B接口的数据被A接口所依赖;(B要产生数据供A接口所使用)

B中的数据要想给A所使用,需要通过公共容器才可以(把公共数据放在容器到当中);公共容器在postman中通过变量来接收,变量可以是环境变量,可以是全局变量;

然后A从这个公共容器当中获取值;

这样就完成了

提取响应数据,设置环境变量,引用环境变量;

关联--核心代码

使用环境变量做容器;也可以使用环境变量做容器;

从容器中提取数据;

关联--创建环境

全局变量是在整个postman中都可以使用的变量, 不需要单独的去创建环境(只要是postman启动,就已经是创建好了)

环境变量是在特定的环境中才能使用的变量,需要给此变量单独创建环境;

如图所示的两个位置可以创建新环境~~

对号和右上角都能帮助我们识别是什么环境,什么样的环境被选用

关联--练习

响应结果中的city是我们需要的响应结果数据

获取的响应结果要转为json格式:.json

将相应结果保存到全局变量当中

写第二个请求,最好是不要写死,用两个花括号中间写变量;这里是在获取全局变量的值;

将鼠标悬停,上面是能看到全局变量的值的,证明获取成功;

如果这里的值是null说明写错了,不用去发送请求;

关联案例--思路分析

使用postman关联技术,实现添加员工接口;

登陆成功,返回的令牌被添加员工接口依赖

必须登录成功,否则就没有令牌

postman参数化支持的数据文件

参数化简介

使用参数化可以大大提高效率

不同的工具使用参数化的方法是不一样的;

postman使用的数据文件支持两大种,是比较常见的:一种是CSV,一种是json

各自有自己的使用场景{

csv:数据格式简单 数据组织起来比较简单

其中有账号密码还有断言:每一行就对应字段给值

所以带来了很突出的缺点:(1)不能测试bool类型:这与postman读取有关系,因为postman读取csv文件时会将所有的非数值类型的数据自动添加""变为字符串;所以就不能表示true和false

(2)不能存储复杂数据类型:元组 列表 字典

(3)不能实现参数测试(多参 少参 无参 错误参数)

以上三个缺点都是比较致命了;

应用场景:数据量较大,数据组织格式简单

}

因此出现了json数据格式{

csv的缺点就是json的有优点:可以测试布尔类型 能使用复杂的数据类型 可以实现参数测试

缺点也是比较明显的:相同数据量,json文件要远远大于csv文件(json格式是key-value的形式)

适用于数据量比较小的,适用于组织格式复杂:字典 列表等等可以作为数据值;需要进行参数设置,CSV使做不到参数测试的(json都是有自己的key的,所以是可以做参数设置的,多参少参并不会对其他数据造成影)

}

脚本只有一个,但是参数是有很多的;

参数化就是将测试数据组织到数据文件中,通过脚本的反复迭代,使用不同的数据,达到测试不同用例的目标

应用场景:测试同一个接口的不同测试点时,只有测试数据不同;考虑使用参数化;

参数化--csv文件

新建文本文档,要有文件扩展名,打开,第一行是写字段,字段和字段之间用英文逗号隔开;

相关推荐
MJH8271 天前
2024Selenium自动化常见问题及解决方式!
自动化测试·软件测试·测试工具·jmeter·接口测试·postman·测试工程师
帝恩思科技1 天前
网站打开速度测试工具:互联网优化的得力助手
测试工具
Coderfuu2 天前
Postman安装使用教程
java·测试工具·postman
蓝天白云下遛狗2 天前
springboot的restTemplate发起get请求参数到服务端无法被解析,curl或postman可以正常调用的url。
spring boot·后端·postman
互联网杂货铺2 天前
你是如何找bug的?bug分析的正确打开方式
自动化测试·软件测试·python·测试工具·职场和发展·单元测试·bug
黑客-秋凌3 天前
Wireshark数据抓包分析之传输层协议(TCP协议)
tcp/ip·测试工具·wireshark
恩爸编程3 天前
Postman 使用教程:从基础到高级
功能测试·测试工具·压力测试·postman·可用性测试·postman使用教程·postman使用方法
玩转测试开发3 天前
Hypothesis:高效的 Python 测试工具
开发语言·python·测试工具
糖果天王3 天前
【Selenium】基于 WebDriverWait 爬取带有懒加载的静态页面
selenium·测试工具