JMeter、Postman、Requests接口测试经验分享-一个参数传多个值(一)(举例)

在接口测试中,实际【很少】会碰到一种情况:某一个参数需要传递多个值;第一次碰到时,手足无措,最近略有体会,就整理、分享下。

因为是真实接口,所以图片多处有马赛克,请多理解。

(一)Requests文档的小意外

公司项目有个接口是可以传多个值,我就想用Requests来试试,在复习自己敲得代码笔记时,发现一点点小问题。

JMeter、Postman、Requests接口测试经验分享-一个参数传多个值(一)(举例)_第1张图片

上图这是我学习的笔记,看到这个用例的多行注释中写的 请求是以一个元组列表来提供这些参数;

代码中有元组列表?哪呢?

追根溯源,看下当时学习的 Requests 的中文文档

JMeter、Postman、Requests接口测试经验分享-一个参数传多个值(一)(举例)_第2张图片

再看下 英文文档
JMeter、Postman、Requests接口测试经验分享-一个参数传多个值(一)(举例)_第3张图片

所以翻车了啊;

但是中文文档的写法真的不能用吗?请接着看

(二)Requests处理 post请求 一个参数传多个值

下图是要分享的这个例子的接口文档;可以看到invitedUserIds这个参数是一个被邀请用户id集合,也就是说这个参数可以传多个值;【此外token、userId都是必传,得先登录才可用此接口】

JMeter、Postman、Requests接口测试经验分享-一个参数传多个值(一)(举例)_第4张图片

先看下手机App成功创建聊天室的抓包数据【gpChatroomId=1000181】

JMeter、Postman、Requests接口测试经验分享-一个参数传多个值(一)(举例)_第5张图片

再看用Requests如何来写这个接口的正向用例:

第一种:参数值写做一个列表 a list of items as a value

(a dictionary with lists as values)

JMeter、Postman、Requests接口测试经验分享-一个参数传多个值(一)(举例)_第6张图片

看下实际运行结果:【gpChatroomId=1000182】

JMeter、Postman、Requests接口测试经验分享-一个参数传多个值(一)(举例)_第7张图片

抓包数据【gpChatroomId=1000182】

JMeter、Postman、Requests接口测试经验分享-一个参数传多个值(一)(举例)_第8张图片

第二种:以一个元组 来提供这些参数

JMeter、Postman、Requests接口测试经验分享-一个参数传多个值(一)(举例)_第9张图片

实际运行结果:【gpChatroomId=1000183】

JMeter、Postman、Requests接口测试经验分享-一个参数传多个值(一)(举例)_第10张图片

抓包数据【gpChatroomId=1000183】

JMeter、Postman、Requests接口测试经验分享-一个参数传多个值(一)(举例)_第11张图片

第三种:以一个元组列表 来提供这些参数 a list of tuples as values

JMeter、Postman、Requests接口测试经验分享-一个参数传多个值(一)(举例)_第12张图片

实际运行结果:【gpChatroomId=1000184】

JMeter、Postman、Requests接口测试经验分享-一个参数传多个值(一)(举例)_第13张图片

抓包数据【gpChatroomId=1000184】

JMeter、Postman、Requests接口测试经验分享-一个参数传多个值(一)(举例)_第14张图片

这些图,让人眼花缭乱;回归本质,来看下源码中的post()、get():

JMeter、Postman、Requests接口测试经验分享-一个参数传多个值(一)(举例)_第15张图片

JMeter、Postman、Requests接口测试经验分享-一个参数传多个值(一)(举例)_第16张图片

关于实际传参:

(optional) Dictionary, list of tuples, bytes, or file-like object【post】
(optional) Dictionary, list of tuples or bytes 【get】

所以结论呢,是推荐用list of tuples,元组列表【第三种处理方式】;

(三)JMeter、Postman处理 post请求 一个参数传多个值

还是这个接口,看下JMeter、Postman这两个工具是如何处理的;

JMeter

登录请求:

JMeter、Postman、Requests接口测试经验分享-一个参数传多个值(一)(举例)_第17张图片

创建聊天室的请求:

JMeter、Postman、Requests接口测试经验分享-一个参数传多个值(一)(举例)_第18张图片

响应数据:【gpChatroomId=1000188】 不仔细看 和186超级像

JMeter、Postman、Requests接口测试经验分享-一个参数传多个值(一)(举例)_第19张图片

Postman

登录请求:请求Body和实际响应Body

JMeter、Postman、Requests接口测试经验分享-一个参数传多个值(一)(举例)_第20张图片

登录请求:断言和实际断言结果、全局变量的设置

JMeter、Postman、Requests接口测试经验分享-一个参数传多个值(一)(举例)_第21张图片

创建聊天室请求:请求Body和实际响应Body

JMeter、Postman、Requests接口测试经验分享-一个参数传多个值(一)(举例)_第22张图片

抓包数据【gpChatroomId=1000186】

JMeter、Postman、Requests接口测试经验分享-一个参数传多个值(一)(举例)_第23张图片

交流技术 欢迎+QQ 153132336 zy

你可能感兴趣的:(接口测试)