Jmeter----GraphQL格式调用接口

1.说明

   GraphQL是一种用于API调用的数据查询语言

   GraphQL接口概念及测试 大家可以了解一下

 

2.实战

  最近在做接口压力测试,当前模拟的场景是通过openid获取用户token,用户小程序中其他接口的调用

  开发呢,就给我下图,让我调用

  此时内心飘过一万字......简言之当开发真爽,苦逼的测试啊,好吧,也可能是我太渣

mutation{
  wechatMiniProgramQuickLogin(input:{
    openId:"20000000001"
    mobile:"20000000001"
  }){
    appIdentifier
    token
  }
}

看到这些内容,有点懵,这是啥格式

没办法,只能先用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中内容格式同我们想要的一致了

 

posted @ 2022-03-22 20:54  Z_sun  阅读(1112)  评论(0编辑  收藏  举报