• 14
  • 14
分享

       在接口测试中有一个这样的场景:登录之后,需要进行昵称修改,怎么实现?

       首先我们分别看下登录、昵称修改的接口说明:

 1.png

2.png

       以上业务中补充一点,昵称修改,还需要添加请求头Authorization传登录获取的token值。

       分析:登录之后的响应结果中会返回用户id、token信息; 而更新昵称需要传参member_id、且需要请求头传token;也就是我们要想办法从“登录”的响应结果中获取到id、token信息,再去传给“更新昵称”请求。因为返回数据格式是json,所以我们用JSON提取器来实现。用正则表达式提取器也可以,大家可参见我之前写的文章。

一、json提取器设置多个变量获取多个数据

1、先添加好登录请求,运行下查看登录的响应结果

3.png

       调整下查看结果方式,可较清晰看到响应结果中的id、token信息

4.png

       JSON path表达式怎么写?例如我要获取id,可写$.data.id,$表示根元素,然后一级级属性往下去找,先找到data,再往下子节点找到id;也可写$..id,直接从根元素去递归查找到id;获取token同理。详细的可查看这篇文章http://www.lemfix.com/topics/63。

5.png

 6.png

       2、右键登录请求-->后置处理器-->添加“JSON提取器”。

7.png

       JSON提取器说明:

       Apply to:应用范围

       Names of created variables :接收值的变量名,自定义,多个变量用分号分隔 

       JSON Path expression: json path表达式,也是用分号分隔 

       Match No.(0 for Random):0表示随机;n取第几个匹配值;-1匹配所有。若只要获取到匹配的第一个值,则填写1

       Compute concatenation var(suffix_ALL):如果找到许多结果,则插件将使用' , '分隔符将它们连接起来,并将其存储在名为<variable name> _ALL的var中

       Default Values: 缺省值,匹配不到值的时候取该值,可写error。

为了检查通过json提取器是否正常获取到值,可添加Debug PostProcessor来检查,注意正常跑用例时删除或禁用它。

8.png

       对比登录返回的结果,能看到已经正常获取到id,token。

       3、添加“修改昵称”请求,将json提取器获取到的值,进行变量引用。运行脚本,更改昵称成功。

9.png

10.png

11.png

二、json提取器设置1个变量获取多个数据

       我们也会碰到获取一个变量,但结果是多个数据的情况。

       1、例如“获取用户列表”,先来看下“获取用户列表”的响应结果。

 12.png

       如果想要获取到这里所有的用户id,json路径表达式怎么写呢?$..id或者$.data[*].id

13.png

       2、添加JSON提取器,获取所有用户id信息。

14.png

       添加Debug PostProcessor来调试用,正常跑用例删除或禁用它。可查看到获取到了所有用户id值。通过id_1,....id_22可得到每一个id。

15.png

       3、将获取到每一个用户id循环进行“用户流水记录”查看结果。

       1)添加循环控制器,设置循环次数。

16.png

       2)在循环控制器之下添加“用户流水记录”请求,并做以下设置。

17.png

       因为要把JSON提取器中匹配到的id_1,....id_22循环传递给“用户流水记录”,

__counter为jmeter自带的一个计数函数,${__counter(,)}引用这个函数,每运行1次+1,从1开始;

id_${__counter(,)}运行第1次id_1,运行第2次id_2,以此类推,直到运行到循环次数id_22

__V为jmeter自带的一个嵌套变量函数,运行第1次id_${__counter(,)}为id_1,${__V(id_${__counter(,)},)}则为${id_1},值80;以此类推,一直循环到${id_22} 18.png

以上为jmeter工具栏tools-->函数助手对话框界面,可以去选择帮助查看对应函数的功能说明。

3)运行后,可查看到结果

19.png


作者:豆姐姐

原文链接:https://www.cnblogs.com/tudou-22/p/12579575.html


  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 01 WEB自动化测试随着WEB程序的不断演化,WEB程序的功能愈发全面和完善。随之而来的,软件规模和复杂度与日俱增,系统内各组件之间的交互也愈发频繁,从而经常出现修改某一组件的代码,另一个组件功能出现意想不到的异常反应。这就要求测试人员执行大量的回归案例来解决这一问题,确保整个应用程序功能正常。日益复杂的系统和愈发严格用户体验,使得软件测试人员的测试任务愈发繁重。手工测试解决这一矛盾,需要投入大量的人力资源重复执行相似的测试步骤。客观上造成了人力资源的浪费。同时,由于测试人员技能的差异,使得软件测试质量不稳定也不可期。自动化测试是一种把人为驱动的测试行为转化为机器执行测试的方法。相较于传统的...
            1 1 1113
            分享
          • 一、代码覆盖率 通常我们在做单元测试的时候会接触到代码覆盖率的概念,通过在单元测试的过程中收集代码覆盖率去判断测试用例是否充分,去更精准的定位问题。而对于功能测试或者接口测试比较少的去关注覆盖率数据,功能测试时覆盖率的收集也是比较困难的。然后对于功能测试而言进行代码覆盖率的收集有利于测试工程师去判断哪些分支没有被覆盖,判断是否是设计用例的时候没有做到覆盖,又或者是由于存在bug使得无法覆盖到,从而更精准的去定位bug的位置,去分析问题,节省时间。 二、工具简介 对于java的代码覆盖率的收集,比较常用的工具有emma、jacoco,它们都是免费的代码覆盖率工具。emma目前已经不维护,Ec...
            4 3 2367
            分享
          •   前言  不管怎样,面试或者被面试和简历有着理不清的关系,面试官要通过简历了解面试者的基本信息、过往经历等。  面试者希望通过简历把自己最好的一面体现给面试官,所以在这场博弈中,作为面试者,需要掌握一定的技巧,写出一个高质量的简历,才能抓住面试官的眼光。  假如你是网上发出简历,你的简历必然会经过 HR 的筛选,一张简历 HR 可能也就花费 10 秒钟看一下,然后 HR 就会决定你这一关是 Fail 还是 Pass。  假如你是内推,如果你的简历没有什么优势的话,就算是内推你的人再用心,也无能为力。  一份好的简历  一份好的简历,可以给人的第一印象大大提升,那么我们如何准备一份高质量的简历...
            0 0 632
            分享
          •   从苹果(193.62,0.87,0.45%)官网获悉,苹果“我的照片流”服务今日正式关闭,“我的照片流”中将不再保留任何照片。用户如果想将拍摄的照片和视频在所有设备上都保持最新并储存在iCloud中,则可使用“iCloud照片”服务。  据悉,“MyPhotoStream”服务于2011年由史蒂夫?乔布斯作为iCloud的一部分推出,可以自动将一个设备上的照片和视频上传到另一个设备上,无需手动同步。这项功能不占用免费的5GBiCloud存储空间,但只能存储1000个文件,并且不支持全分辨率同步。  苹果公司后来推出了iCloudPhotoLibrary(现在称为iCloudPhotos),...
            0 0 887
            分享
          • 前言:本篇讲堂是紧接【安全测试工具-进阶篇[XSS跨站点脚本漏洞(下)]】的内容。例牌,先说下安全测试工具的更新情况【工具地址:https://gitee.com/samllpig/SafeTool-51testing】1. 集成平台增加二进制文件查看功能2. 集成平台增加base64编解码功能,可用于解码二进制的序列化对象漏洞讲解:所属模块: (A8) Insecure Deserialization [反序列化漏洞]9.1 菜单项:Insecure Deserialization[反序列化漏洞],本章共5个小节9.1.1 第一节主题:课程概述内容:本模块的全部课程是讲解...
            0 0 84
            分享
      • 51testing软件测试圈微信