jmeter如何实现从登录接口响应数据获取cookie后保存至本地

  测试过程中,需要根据不同的场景来设置自己的jmeter脚本,比如:发送短信的业务就需要获取到用户登录后的jsessionid,那么根据这个场景,编写脚本就有不同的实现方式。第一种,登录和发短信两个接口使用关联技术,从登录的响应数据中提取到jsessionid,然后传递给发短信的接口,发短信接口在发送请求时,携带着这个jsessionid,就可以请求成功。第二种,先从登录接口中获取到用户的jsessionid,并保存到本地,然后发送短信的接口需要用到这个jsessionid,就用csv Data Set Config参数化的方式调用.。

  下面呢,我就介绍下第二种实现方法。

一、我登录接口的用户名也是用csv Data Set Config的方式,设置的参数化。

1、在测试计划上,点击右键-》Threads(Users)-》线程组

 2、在线程组上,点击右键,在配置元件中选择csv Data Set Config

 3、csv Data Set Config界面的设置如图:

 4、在线程组点击右键,Sampler中选择HTTP请求,在HTTP请求中填写登录的接口地址,请求方法以及请求参数等。

 5、在登录接口上点击右键,后置处理器中选择正则表达式提取器,正则表达式提取的时候,要根据具体的响应数据去写。可以再加一个Debug PostProcessor去查看,自己写的正则表达式,是否能够正确提取到jsessionid。

  6、在登录接口上点击右键,后置处理器中选择BeanShell PostProcessor,在BeanShell 中写代码实现,将正则表达式提取到的jseesionid保存到本地。

 具体代码如下:

String path = "E:\test";// 定义一个文件夹路径
File file = new File(path) ;
if(!file.exists()) {
file.mkdirs();
} //创建文件夹
FileWriter fstream = new FileWriter("E:\test\cookies.txt",true); //路径已存在,创建文件并追加写入数据
BufferedWriter out = new BufferedWriter(fstream);
out.write(vars.get("jsessionid") +" ");
out.close();
fstream.close();

7、在线程组上点击右键,监听器中选择查看结果树,用来查看接口请求是否成功。

8、点击工具栏中的启动,在自己设置的路径下查看,本地文件是否生成,数据是否正确。

 二、发送短信的接口实现脚本

 1、添加线程组,在线程组上点击右键,添加三个配置元件,分别是csv data set config,HTTP信息头管理器,HTTP Cookie 管理器。

 

HTTP Cookie 管理器中的设置

 2、添加发送短信的http请求,具体根据接口的路径、请求方式以及请求参数等进行设置。

3、添加监听器,查看结果树,检查请求是否正确,短信是否成功发送

 短信发送成功。

原文地址:https://www.cnblogs.com/jane4321/p/13534315.html