Jmeter----GraphQL格式调用接口
1.说明
GraphQL是一种用于API调用的数据查询语言
GraphQL接口概念及测试 大家可以了解一下
2.实战
最近在做接口压力测试,当前模拟的场景是通过openid获取用户token,用户小程序中其他接口的调用
开发呢,就给我下图,让我调用
此时内心飘过一万字......简言之当开发真爽,苦逼的测试啊,好吧,也可能是我太渣
mutation{ |
看到这些内容,有点懵,这是啥格式
没办法,只能先用postman调用,确保接口ok,然后我们再在jmeter中进行调用
第一步:postman中调用
在postman中调用成功,得要了我们想要的结果
第二步:导出postman中请求信息
此时,可以获取到我们后续将要使用到的入参
第三步:jmeter中调用
填入我们在postman中拿到的入参填入,进行调用,发现也得到了我们想要的结果
完美结束
3.GraphQL格式入参参数化
为了方便记录,删除了部分参数
原始入参: {"a":"a","query":"aa {\n w(\n input: {s: [{skuProperties: \"{\\\"size\\\":\\\"均码\\\",\\\"color\\\":\\\"黑色\\\"}\"}], additionalServiceFee: {amount: 0}}\n ) {\n order {\n code\n orderCode\n __typename\n }\n __typename\n }\n}\n"} |
参数化:
{"a":"a","query":"aa {\n w(\n input: {s: [{skuProperties: \"{\\\"size\\\":\\\"${size}\\\",\\\"color\\\":\\\"${color}\\\"}\"}], additionalServiceFee: {amount: 0}}\n ) {\n order {\n code\n orderCode\n __typename\n }\n __typename\n }\n}\n"} |
优化后: {"a":"a","query":"aa {\n w(\n input: {s: [{skuProperties: \"{\\\\\"size\\\\\":\\\\\"${size}\\\\\",\\\\\"color\\\\\":\\\\\"${color}\\\\\"}\"}],additionalServiceFee: {amount: 0}}\n ) {\n order {\n code\n orderCode\n __typename\n }\n __typename\n }\n}\n"}
|
参数化后执行,我们发现,请求的Body中内容格式同我们想要的不一致
优化后再执行,我们发现,请求的Body中内容格式同我们想要的一致了