(接口测试)第六章 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文件

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

相关推荐
niuniu_66620 小时前
简单的自动化场景(以 Chrome 浏览器 为例)
运维·chrome·python·selenium·测试工具·自动化·安全性测试
niuniu_6662 天前
Selenium 性能测试指南
selenium·测试工具·单元测试·测试·安全性测试
莓事哒2 天前
selenium和pytessarct提取古诗文网的验证码(python爬虫)
爬虫·python·selenium·测试工具·pycharm
软件测试曦曦2 天前
如何使用Python自动化测试工具Selenium进行网页自动化?
自动化测试·软件测试·python·功能测试·测试工具·程序人生·自动化
互联网杂货铺2 天前
黑盒测试、白盒测试、集成测试和系统测试的区别与联系
自动化测试·软件测试·python·功能测试·测试工具·单元测试·集成测试
Feng.Lee2 天前
聊一聊缓存如何进行测试
功能测试·测试工具·缓存
爱学测试的雨果2 天前
Postman —— postman实现参数化
软件测试·功能测试·测试工具·lua·postman
互联网杂货铺3 天前
如何用Postman实现自动化测试?
自动化测试·软件测试·python·测试工具·测试用例·接口测试·postman
niuniu_6663 天前
安全性测试(Security Testing)
测试工具·单元测试·appium·测试·安全性测试
薄荷你玩_3 天前
简单粗暴,用浏览器调试端口绕过Selenium/Playwright/Puppeteer检测
selenium·测试工具