zoukankan      html  css  js  c++  java
  • 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、添加监听器,查看结果树,检查请求是否正确,短信是否成功发送

     短信发送成功。

  • 相关阅读:
    Rsync企业实战之自动异地备份(转)
    Linux启动过程详解 (转)
    Linux系统下修改环境变量PATH路径的三种方法
    linux更改启动级别后,无法启动的问题解决
    MySQLAdmin用法
    mysql toolkit 用法[备忘] (转)
    mysql edit
    MySQL中SSL配置
    mysql ALTER COLUMN MODIFY COLUMN CHANGE COLUMN 区别及用法 (转)
    MySQL 使用mysqld_multi部署单机多实例详细过程 (转)
  • 原文地址:https://www.cnblogs.com/jane4321/p/13534315.html
Copyright © 2011-2022 走看看