如何使用Postman实现数据驱动?(上)
要实现Postman的数据驱动,主要分为五个大步骤: 第一步:什么是数据驱动?第二步:设计测试用例
第三步:在Postman中编写测试用例脚本
第四步:分析脚本,设计数据文件,并通过参数化关联匹配数据参数
第五步:引用数据文件,执行测试用例,实现数据驱动测试。
一. 什么是数据驱动?
目标:理解数据驱动的概念
步骤:无
执行测试用例的过程,本质上是执行的不同数据,不同输入输出的过程。所以,在计算机中,我们可以使用预先设定好的数据文件,来执行测试用例,实现覆盖测试点。
本文主要以TPshop商城的登陆接口为例,实现自动化测试的数据驱动登陆接口的测试。
二. 设计测试用例
目标:完成TPshop登陆接口的部分测试用例设计
步骤:分析登陆接口请求数据和响应数据,设计测试用例
对登陆模块进行单接口测试点设计测试用例,用例设计情况如下:
(注意:本文的验证码验证部分,采用了万能验证码 )
http://www.51testing.com/attachments/2021/04/15326880_202104131126191gBnj.jpg
三. 编写测试用例脚本
目标:使用Postman实现TPshop的登陆脚本编写
步骤:
· 编写TPshop商城的测试集和目录结构
·实现测试用例脚本
1.编写TPshop商城的测试集
编写TPshop商城的测试集有3个小步骤
· 新建一个测试集,名称为TPshop商城
· 添加一个文件夹,名称为登陆模块
· 在登陆模块文件夹下,新建5个文件夹,如图所示:
http://www.51testing.com/attachments/2021/04/15326880_2021041311262410VMs.jpg
· 根据测试用例设计,在每个文件夹下添加获取验证码接口和登陆接口,未展示部分依次类推
http://www.51testing.com/attachments/2021/04/15326880_202104131126301jwMC.jpg
2.实现测试用例
按照我们的用例设计,主要有5个用例和1个前置条件需要实现,用例详情如下:
· 实现获取验证码接口(登陆的前置条件)
· 实现登陆成功测试用例脚本
· 实现用户名不存在测试用例脚本
· 实现密码错误测试用例脚本
· 实现用户名长度超出11位测试用例脚本
· 实现密码为空测试用例脚本
登陆的前置接口:获取验证码接口的实现
获取验证码接口使用的是Get请求,只有URL的请求参数,没有请求体,请求头不用修改,Postman默认会填写
请求方法、请求URL截图:
http://www.51testing.com/attachments/2021/04/15326880_202104131126361oF6w.jpg
获取验证码接口的断言分析
分析返回数据,发现返回的是一个图片:
http://www.51testing.com/attachments/2021/04/15326880_202104131126411tibS.jpg
根据HTTP协议,服务器返回的图片数据类型一般在响应头中查看Content-Type,如下图所示,发现响应头中的Content-Type的类型为image/png
http://www.51testing.com/attachments/2021/04/15326880_202104131126471DAZd.jpg
综上,断言代码可以对请求头中的Content-Type进行断言,判断是否为一个图片,可以这么写:
http://www.51testing.com/attachments/2021/04/15326880_202104131126521szEM.jpg
设计“登陆成功”测试案例
设置请求方法,请求URL和请求体
http://www.51testing.com/attachments/2021/04/15326880_202104131126581YnCa.jpg
请求头:
请求头需要设置为:
application/x-www-form-urlencoded(其实也是点击上图中的x-www-form-urlencoded就能自动生成)
其他相关请求头参数使用Postman默认设置的。
http://www.51testing.com/attachments/2021/04/15326880_202104131127041AUER.jpg
登陆成功的返回值为:
http://www.51testing.com/attachments/2021/04/15326880_202104131127091p35n.jpg
根据返回值分析,可以简单的断言status和msg以及http响应状态码就可以简单判断是否登陆成功(这里为了简化流程,并未判断数据准确性)
所以断言代码可以按照下图进行设计:
http://www.51testing.com/attachments/2021/04/15326880_202104131127151hjmG.jpg
设计“用户名不存在测试用例”
接下来的4个接口测试用例脚本,都是一样的模式
设置请求头、请求体、URL请求参数、请求方法如图所示:
http://www.51testing.com/attachments/2021/04/15326880_202104131127201u5jI.jpg
用户名不存在的断言代码:
http://www.51testing.com/attachments/2021/04/15326880_202104131127261PSvo.jpg
设计“密码错误”测试案例
请求头,请求体,URL请求参数,请求方式:
http://www.51testing.com/attachments/2021/04/15326880_202104131127311XSmF.jpg
密码错误的断言代码:
http://www.51testing.com/attachments/2021/04/15326880_202104131127371caH8.jpg
设计“用户名长度超出11位”测试案例
请求头,请求体,URL请求参数,请求方式:
http://www.51testing.com/attachments/2021/04/15326880_2021041311274212qO9.jpg
用户名超出11位的断言代码
http://www.51testing.com/attachments/2021/04/15326880_202104131127481U4gC.jpg
设计密码为空的测试案例
请求头,请求体,URL请求参数,请求方式:
http://www.51testing.com/attachments/2021/04/15326880_202104131127531tMrH.jpg
密码为空的返回值为:
http://www.51testing.com/attachments/2021/04/15326880_202104131127591GdLM.jpg
密码为空断言代码:
http://www.51testing.com/attachments/2021/04/15326880_202104131128051mV2h.jpg
页:
[1]