在接口自动化测试中,经常会遇到的一种场景就是参数的场景,比如在用户列表中获取所有的用户列表,然后获取到某一个用户的ID,查看该用户的详细信息。首先在这里理清思路,它的流程是,首先获取到数据,然后在Jmeter中,通过后置处理器中的jp@gc - JSON Path Extractor把响应数据中的需要处理的数据单独的取出来,定义成一个变量,然后在下个接口调用的时候,把该变量的值传进去,就能够解决动态参数传递这样的一个问题。这里以网易云平台为案例,在这里实现的是在网易云平台搜索“无涯课堂”,搜索后,把课程到ID获取后,然后查看该课程的详情信息。
首先启动Jmeter,在测试计划中创建线程组,和在线程组下面创建简单控制器,命名为机构搜索,在网易云平台首先搜索”无涯课堂“,见搜索后返回的响应数据,如下图所示:
在刚才创建的简单控制器中创建HTTP信息头管理器,把需要的请求头添加,具体见如下图添加的请求头信息:
然后添加机构搜索的接口用例,见接口用例的信息:
下来获取无涯课堂机构里面的课程ID,在该接口用例中添加后置处理器中的jp@gc - JSON Path Extractor,把获取到的课程ID定义成一个变量,见获取课程的ID并且定义成变量的信息,如下图所示:
获取到课程的ID后,下来请求查看该课程的详情信息,它的接口是GET请求,再次创建简单控制器,在里面添加查看课程详情的用例,在用例的URL中调用获取到的课程ID的变量,如下图所示:
这样我们就实现了动态参数的传递,其实它的实现思路也是非常简单的。执行成功后,就可以在课程详情接口用例中就可以看到该课程的详细信息了,如下图所示: