[转帖]jmeter编写测试脚本大全

jmeter,编写,测试,脚本,大全 · 浏览次数 : 0

正文

目录

一、背景

二、按照功能划分

2.1 加密处理、验签处理

2.2 jmeter 使用beanshell 编写脚本

2.3 jmeter脚本报错大全

2.4 jmeter打印log

2.5 jmeter压测java代码

2.6 jmeter读取数据保证每个线程拿到的数据唯一

2.7 jmeter设置并发量线程数为变量

2.8 beanshell 将数据写入到本地txt

2.9 beanshell 读取本地txt

三、按照场景划分

3.1 登录场景

3.1.1 背景

3.1.2 整体脚本结构

3.1.3 参数化

3.1.4 HTTP信息头管理器 

3.1.5 请求 /xxx/xxxx/getSession获取 token与key

3.1.6 请求 /xxx/xxx/getVerificationCode?token=${token}获取验证码

3.1.7 /xxx/xxx/login 

3.2 查询商品详情

3.2.1 背景

3.2.2 整体结构

3.2.3 信息头管理 

3.2.4 参数化处理

3.3 获取批量token,并写到本地文件中

3.3.1 背景

3.3.2 脚本结构

3.3.3 用户自定义变量

3.3.4  循环控制器

3.3.5 登录请求

3.4 查询不同用户个人信息

3.4.1 背景

3.4.2 整体结构

3.4.3 循环控制器

3.4.4 信息头管理


一、背景

使用jmeter编写脚本时,有好多注意事项,也写好了好多博客,但是很散。

这次统一整合一下。

二、按照功能划分

2.1 加密处理、验签处理

jmeter脚本处理加密验签_jmeter加密_做测试的喵酱的博客-CSDN博客

2.2 jmeter 使用beanshell 编写脚本

 jmeter 使用beanshell 编写脚本_beanshell脚本_做测试的喵酱的博客-CSDN博客

2.3 jmeter脚本报错大全

jmeter写脚本报错大全_jmeter录制报错_做测试的喵酱的博客-CSDN博客

2.4 jmeter打印log

jmeter脚本调试_jmeter调试_做测试的喵酱的博客-CSDN博客

2.5 jmeter压测java代码

jmeter 压测java代码_jmeter压测java代码_做测试的喵酱的博客-CSDN博客

2.6 jmeter读取数据保证每个线程拿到的数据唯一

jmeter读取数据保证每个线程拿到的数据唯一_做测试的喵酱的博客-CSDN博客

2.7 jmeter设置并发量线程数为变量

jmeter设置并发量线程数为变量_做测试的喵酱的博客-CSDN博客

2.8 beanshell 将数据写入到本地txt

  1. import java.io.BufferedReader;
  2. import java.io.BufferedWriter;
  3. import java.io.FileReader;
  4. import java.io.IOException;
  5. FileWriter fileWriter = new FileWriter(new File(vars.get("data_file_path_token")), true);
  6. BufferedWriter writer = new BufferedWriter(fileWriter);
  7. String TOKEN = vars.get("token");
  8. writer.append(TOKEN+"\r\n");
  9. writer.close();
  10. fileWriter.close();

data_file_path_token 为本地文件的路径 

2.9 beanshell 读取本地txt

  1. import java.io.BufferedReader;
  2. import java.io.BufferedWriter;
  3. import java.io.FileReader;
  4. import java.io.IOException;
  5. String data_file_path = "/xxx/user.txt";
  6. FileReader filereader = new FileReader(new File(data_file_path));
  7. BufferedReader reader = new BufferedReader(filereader);
  8. String line = reader.readLine();
  9. reader.close();
  10. filereader.close();

三、按照场景划分

3.1 登录场景

3.1.1 背景

整个登录场景,是由三个接口组成的。

1、获取token 与 key

/xxx/xxxx/getSession

2、获取图片验证码

需要拿着1中的token去获取图片验证码。

/xxx/xxx/getVerificationCode?token=${token}

3、将1中获取的token,放到header里。

将1中获取的key用来对密码加密

这个请求header中,还需要生成一个验签。

/xxx/xxx/login

3.1.2 整体脚本结构

3.1.3 参数化

参数化的处理:循环控制器+CSV数据文件设置

jmeter读取数据保证每个线程拿到的数据唯一_做测试的喵酱的博客-CSDN博客

3.1.4 HTTP信息头管理器 

信息头中,很多都是变量。token 、key、验签sign 都是变量。

3.1.5 请求 /xxx/xxxx/getSession获取 token与key

直接去/xxx/xxxx/getSession,然后在返回值中,提取token与key

 1、http请求

2、提取token

3、提取 key

3.1.6 请求 /xxx/xxx/getVerificationCode?token=${token}获取验证码

开发将登录的时候,验证码写死了一个固定值。

getVerificationCode?token=${token} 请求,需要带着上一个请求提取的token

1、http请求

3.1.7 /xxx/xxx/login 

进行登录 /xxx/xxx/login 

1、login请求中的参数,是需要经过加密处理的。

所以设置参数为消息体。消息体为一个变量${param} 

2、预处理来处理header与传参数

header所需的信息,传参所需要的信息。都在预处理中,进行处理。最后将我们所需要的token、sign、param吐出来。

jmeter脚本处理加密验签_jmeter加密_做测试的喵酱的博客-CSDN博客

3.2 查询商品详情

3.2.1 背景

查询商品的详情,避免缓存问题,要使用参数化,根据不同的商品id去查询商品详情

/xxx/xxx/commodity?id=${id}

3.2.2 整体结构

3.2.3 信息头管理 

我们用同一个用户信息,去查询不同商品的详情。所以这里信息头写死就好了。

3.2.4 参数化处理

jmeter读取数据保证每个线程拿到的数据唯一_做测试的喵酱的博客-CSDN博客

3.3 获取批量token,并写到本地文件中

3.3.1 背景


我需要获取2万个用户登录后的token,写到 本地txt文件中。

3.3.2 脚本结构

3.3.3 用户自定义变量

这里定义了我们写入txt文档的路径

3.3.4  循环控制器

想要获得20000个token,就要登录20000个不同的用户。这里使用循环控制器读取20000个不同的用户信息。

jmeter读取数据保证每个线程拿到的数据唯一_做测试的喵酱的博客-CSDN博客

3.3.5 登录请求

 

 1、信息头管理器

注意,这个信息头管理器的位置,要在login请求里面。

 

2、预处理器

处理登录的加密、验签等。千万不要勾选脚本编译缓存。

3、提取token

4、后置处理器,将拿到的token写入到本地文件 

  1. import java.io.BufferedReader;
  2. import java.io.BufferedWriter;
  3. import java.io.FileReader;
  4. import java.io.IOException;
  5. FileWriter fileWriter = new FileWriter(new File(vars.get("data_file_path_token")), true);
  6. BufferedWriter writer = new BufferedWriter(fileWriter);
  7. String TOKEN = vars.get("token");
  8. writer.append(TOKEN+"\r\n");
  9. writer.close();
  10. fileWriter.close();

注意:

为了避免缓存影响,最后选择True.

3.4 查询不同用户个人信息

3.4.1 背景

需要使用2000个用户的token,然后去查询个人信息。

正常 逻辑,就是先去登录,登录成功后再去获取个人信息。

但是这样的话,获取个人信息接口的tps 要受到登录接口性能的影响。

登录只能支持30个并发,但是查询个人信息接口要测试100个并发。

所以只能先将登录成功后的信息写到本地,然后再去读取本地登录的token 去请求个人信息接口。

3.4.2 整体结构

3.4.3 循环控制器

读取2000个token,且保证每一个线程取到的token是唯一的。

3.4.4 信息头管理

信息头管理器,要在请求的里面。

    <div id="blogExtensionBox" style="width:400px;margin:auto;margin-top:12px" class="blog-extension-box"><div class="blog_extension blog_extension_type2" id="blog_extension">
      <div class="extension_official" data-report-click="{&quot;spm&quot;:&quot;1001.2101.3001.6471&quot;}" data-report-view="{&quot;spm&quot;:&quot;1001.2101.3001.6471&quot;}">
      <div class="blog_extension_card_left">
        <img src="https://img-blog.csdnimg.cn/ab4f72676f0847b58f9a9f7e207f1466.jpeg" alt="">
      </div>
      <div class="blog_extension_card_cont">
        <span class="text">测试童鞋</span>
        <div class="blog_extension_card_cont_r">
          <img class="weixin" src="https://g.csdnimg.cn/extension-box/1.1.6/image/weixin.png" alt="">
          <span>微信名片</span>
        </div>
      </div>
      <img class="blog_extension_card_right" src="https://g.csdnimg.cn/extension-box/1.1.6/image/ic_move.png" alt="">
    </div></div></div>
</article>

与[转帖]jmeter编写测试脚本大全相似的内容:

[转帖]jmeter编写测试脚本大全

目录 一、背景 二、按照功能划分 2.1 加密处理、验签处理 2.2 jmeter 使用beanshell 编写脚本 2.3 jmeter脚本报错大全 2.4 jmeter打印log 2.5 jmeter压测java代码 2.6 jmeter读取数据保证每个线程拿到的数据唯一 2.7 jmeter设

[转帖]jmeter 使用beanshell 编写脚本

目录 一、介绍 1.1 介绍 1.2 下载&启动 二、jmeter中创建beanshell脚本 三、jmeter与beanshell 数据交互 3.1 例子1 beanshell 将变量传给jmeter 3.2 例子二 jmeter 接收beanshell 生成的变量 四、jmeter中Beansh

[转帖]jmeter及serveragent的安装、常见报错及解决方法

一.说明: 1.jmeter必须在java环境下运行 2.jmeter抓包可以用自带服务器录制抓取,也可以手动网页抓取(含fiddler),也可以用badboy(更推荐手动抓取和badboy) 3.后面单独开一篇来说明各个功能的用处。 二.安装: 1.jmeter.properties配置:在jme

[转帖]JMETER性能监控之serverAgent

对linux服务器的服务进行压测时,服务器的运行情况可以通过添加插件serverAgent来观察,可以实时监控性能指标。 1 (一)环境准备 1、下载zip包ServerAgent-2.2.3.zip 2、在服务器中,创建一个文件夹serveragent,名字随便起 mkdir serveragen

[转帖]jmeter分布式执行原理

jmeter分布式执行原理https://www.jianshu.com/p/bcfc48054b1e Jmeter分布式执行原理: 1、Jmeter分布式测试时,选择其中一台作为控制机(Controller),其它机器做为代理机(Agent)。 2、执行时,Controller会把脚本发送到每台A

[转帖]JMeter分布式测试环境搭建(禁用SSL)

https://www.cnblogs.com/MasterMonkInTemple/p/11978058.html JMeter分布式环境,一台Master,一到多台Slave,Master和Slave可以是同一台机器。 前提条件: 所有机器,包括master和slave的机器: 1.运行相同版本

[转帖]jmeter压力测试

使用jmeter 进行并发压力测试。 首先需要安装好jmeter,下面以widows操作平台为例: 1、确保电脑安装并配置好java环境;具体怎么下载和配置请自行百度; 2、登录jmeter官网http://jmeter.apache.org/download_jmeter.cgi,点击如下图操作

[转帖]【Jmeter】Jmeter压力测试工具安装及使用教程(redis测试)

摘自:https://www.cnblogs.com/monjeo/p/9330464.html 一、Jmeter下载 进入官网:http://jmeter.apache.org/ 1.第一步进入官网如下图 2.选择进行下载,下载下来为一个压缩包,解压即可。 3.我下载的是jmeter4.0版本,对

[转帖]【jmeter】BeanShell用法详细汇总

一、什么是Bean Shell BeanShell是用Java写成的,一个小型的、免费的、可以下载的、嵌入式的Java源代码解释器,具有对象脚本语言特性,非常精简的解释器jar文件大小为175k。BeanShell执行标准Java语句和表达式,另外包括一些脚本命令和语法。 官网地址:http://w

[转帖]Jmeter压力测试工具安装及使用教程

https://www.cnblogs.com/monjeo/p/9330464.html 一、Jmeter下载 进入官网:http://jmeter.apache.org/ 1.第一步进入官网如下图 2.选择进行下载,下载下来为一个压缩包,解压即可。 3.我下载的是jmeter4.0版本,对应jd