目录

一,python数据驱动

二、jmeter数据驱动

三、postman数据驱动

简介: 有的人 是因为上司需要他做接口测试,有的是开发要他做接口测试,有的则是自发的觉得自己的负责的版本接口都需要测一下,保证接口的稳定,纵使刷了一遍又一遍的接口,没有找到bug,但是我们能收获的是我们担起我们对整个项目的责任与保证,我们对我们项目信心,我们对项目结构的熟悉。目的:业务简单,要输入的数据量多的接口,我们可以使用数据驱动的方式快速的进行测试思路分析: 对于接口,如果我们能预期到它的结果,那么我们就能事先设计好输入和预期的输出,使用数据驱动的自动化方式进行接口测试。在这里结束的数据驱动方式有三种

一,python数据驱动(也可引用unittest的@ddt进行)

 1,写好csv数据,如果业务复杂,响应码以及响应内容等数据也可放入我们的数据里面

2,从代码上读取我们的数据 

#获取data.csv上的数据

#获取[['username1', 'password1'], ['username2', 'password2']...

def getCSVData():

value_rows = []

with open('data.csv',encoding='UTF-8') as file:

file_csv = csv.reader((file))

next(file_csv)

for r in file_csv:

value_rows.append(r)

return value_rows

3,使用for X in listX 的方式,进行进行批量的发送注册请求 4,观察结果,如果有响应信息有误会被断言结果捕获到,进行报错,都通过就不会报错,建议挑几个接口响应信息进行查看,以局部代替整体,如果挑的几个都通过了,那么就可以说这次的接口测试是OK的。

4,代码如下: 

import csv

import requests

#获取data.csv上的数据

#获取[['username1', 'password1'], ['username2', 'password2']...

def getCSVData():

value_rows = []

with open('data.csv',encoding='UTF-8') as file:

file_csv = csv.reader((file))

next(file_csv)

for r in file_csv:

value_rows.append(r)

return value_rows

def register():

for item in getCSVData():

url = 'http://127.0.0.1:1080/cgi-bin/login.pl'

headers ={

'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',

'Accept-Encoding': 'gzip, deflate, br',

'Accept-Language': 'zh-CN,zh;q=0.9',

'Cache-Control': 'max-age=0',

'Connection': 'keep-alive',

'Content-Length': '276',

'Content-Type': 'application/x-www-form-urlencoded',

'Cookie': 'MSO=SID&1668092819',

'Host': '127.0.0.1:1080',

'Origin': 'http://127.0.0.1:1080',

'Referer': 'http://127.0.0.1:1080/cgi-bin/login.pl?username=&password=&getInfo=true',

'sec-ch-ua': '"Google Chrome";v="107", "Chromium";v="107", "Not=A?Brand";v="24"',

'sec-ch-ua-mobile': '?0',

'sec-ch-ua-platform': "Windows",

'Sec-Fetch-Dest': 'frame',

'Sec-Fetch-Mode': 'navigate',

'Sec-Fetch-Site': 'same-origin',

'Sec-Fetch-User': '?1',

'Upgrade-Insecure-Requests': '1',

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36'

}

body = {

'username': item[0],

'password': item[1],

'passwordConfirm': item[1],

'firstName': '江',

'lastName': '云',

'address1': '深圳宝安',

'address2': '深圳',

'register.x':'76',

'register.y':'7'

}

print(item[0],item[1])

response = requests.request('POST',headers=headers,url=url,data=body)

assert 'Welcome to Web Tours' in response.text,'注册失败哦,找找原因吧'

print(response.text)

if __name__ == '__main__':

register()

二、jmeter数据驱动

 1,设置好单个接口,包括接口的组成,请求头,入参,断言(响应码,响应内容,响应时间...),观察结果树,如果是接口关联,还需要设置好思考时间。​​​​​​​

2,使用设置csv方式获取csv数据,如果数据量不大,且数据只有一种的情况下,也可使用“用户定义的变量”组件来进行数据驱动 数据内容

 添加csv数据驱动配置

  配置CSV设置

修改入参,通配符获取csv的数据

 3,线程组下或循环控制器下设置循环的次数,多少个用例就循环多少次

4,点击发送请求,然后看是否都断言成功了,请求的数据是否分别是自己csv上的数据。我这边校验结果都是正确的,如下

三、postman数据驱动

1,设置好单个接口(URL,请求头,请求体,断言)

 

2,试着请求一下,如果单个请求可以成功,则可以考虑添加数据驱动了3,需要进行不断替换的入参,都改为{{csv对于的数据名}}的形式 ,断言的数据也可以从csv上去 获取

4,选择对应的测试集三角形上点击 – run collection – 设置循环次数、接口间隔、选择保存测试数据的CSV文件 – 勾选需要运行的接口 – run     选择导入数据文件后,最好预览确认数据是否正确

 

 5,点击运行,可查看执行结果,理想结果是都OK

 Python、Jmeter、Postman数据驱动篇结束,欢迎观看我主页上的其它技术篇

精彩文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: