目录

一、背景

二、按照功能划分

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编写测试脚本大全的更多相关文章

  1. JMeter性能测试基础 (4)-使用JMeter录制测试脚本

    在进行压力测试时,由于很多web页面包含了Ajax异步请求等内容,为模拟用户真实输入,除了对html的访问外,还需要将其它的访问考虑入内,这时最好的办法就是对实际访问过程中的所有请求进行录制. 例如, ...

  2. [转]jmeter 自定义测试脚本

    http://blog.csdn.net/kash_chen007/article/details/37690411 http://wangym.iteye.com/blog/731729 1.创建一 ...

  3. 用python编写测试脚本

    def f(n): """ >>>f(1) 1用例 >>>f(2) 2用例 ...... >>>f(n) n用例 & ...

  4. 用BlazeMeter录制JMeter测试脚本

    工具: 1,JMeter 2,Chrome 3,BlazeMeter 4,SwitchyOmega(如果需要代理) 步骤: 以上工具准备好以后就可以录制JMeter的测试脚本了, 在Chrome中点击 ...

  5. 菜鸟教程之工具使用(十)——用BlazeMeter录制JMeter测试脚本

    工具: 1,JMeter 2,Chrome 3,BlazeMeter 4,SwitchyOmega(如果需要代理) 步骤: 以上工具准备好以后就可以录制JMeter的测试脚本了, 在Chrome中点击 ...

  6. 用BlazeMeter录制JMeter(三十五)测试脚本(转载)

    转载自 http://www.cnblogs.com/yangxia-test 工具: 1,JMeter 2,Chrome 3,BlazeMeter 4,SwitchyOmega(如果需要代理) 步骤 ...

  7. python+pytest接口自动化(12)-自动化用例编写思路 (使用pytest编写一个测试脚本)

    经过之前的学习铺垫,我们尝试着利用pytest框架编写一条接口自动化测试用例,来厘清接口自动化用例编写的思路. 我们在百度搜索天气查询,会出现如下图所示结果: 接下来,我们以该天气查询接口为例,编写接 ...

  8. 实践作业2:黑盒测试实践——编写自动化脚本并拍摄测试过程视频 Day 6

    下午下课之后小组成员一起交流了一下实验过程遇到的一些问题,并汇总了下各个项目完成情况 该实验目前(写博客是时间)基本完成,具体情况如下 (1)分析系统需求 .(done) (2)设计测试用例.(don ...

  9. jmeter压力测试笔记- HTTP协议

    一.目标 使用jmeter进行HTTP接口压力测试: 命令行方式运行,方便在linux环境运行: 二.面临的问题 支持多环境测试(开发.测试.生产环境) 支持用户数据.线程数.循环次数等配置在运行时自 ...

  10. Postman—测试脚本

    前言 对于Postman中的每个请求,我们都可以使用JavaScript语言来开发测试脚本.这也就好比单元测试.我们先看看Postman的相关界面: 编写测试脚本 Postman测试脚本本质上是在发送 ...

随机推荐

  1. Unity3d_Rewired官方文档翻译:概念(一):InputManager、Players、Actions

    仅翻译了官方文档中的Essentials(要点).Concepts(概念)两部分,这是文档中最重要的部分,理解了这两部分的内容应该足以让你将Rewired运用到你的项目中,之后再去阅读文档的其他部分也 ...

  2. Spark Streaming快速入门

    Spark Streaming快速入门 一.简介 Spark Streaming 是构建在 Spark Core 基础之上的流处理框架(但实际上是微批次处理框架),是 Spark 非常重要的组成部分. ...

  3. Llama2-Chinese项目:5-推理加速

      随着大模型参数规模的不断增长,在有限的算力资源下,提升模型的推理速度逐渐变为一个重要的研究方向.常用的推理加速框架包含lmdeploy.FasterTransformer和vLLM等. 一.lmd ...

  4. Llama2-Chinese项目:2.2-大语言模型词表扩充

      因为原生LLaMA对中文的支持很弱,一个中文汉子往往被切分成多个token,因此需要对其进行中文词表扩展.思路通常是在中文语料库上训练一个中文tokenizer模型,然后将中文tokenizer与 ...

  5. Prometheus配置Basic Auth进行安全防护,实现登录控制

    本文分享自华为云社区<Prometheus配置Basic Auth进行安全防护,实现登录控制>,作者:可以交个朋友. 一.Prometheus Basic Auth 使用背景 在日常pro ...

  6. 【福利活动】华为云“上云之路”征文大赛开启,FreeBuds3无线耳机等重磅好礼送不停

    各位关注华为云的开发者们,达嘎猴啊~ 今天带给你们一个好消息,大家心心念念的华为云"上云之路"征文大赛已经正式开启啦. 举办本次华为云"上云之路"征文大赛的目的 ...

  7. 新一代构建工具(1):对比rollup/parcel/esbuild—esbuild脱颖而出

    文章内容来源: 字节前端是如何基于 ESBuild 的做现代化打包设计? https://mp.weixin.qq.com/s/bS_qwiOIMqFN1sfuPKTUbA 新世代建置工具解析(esb ...

  8. PPT 编辑顶点

    编辑顶点的N种玩法 针对特定的形状进行编辑 选中形状 -> 右键 -> 编辑顶点 如果[编辑顶点]是灰色的,需要上网下一个 office clean touris,清理一下 合并形状:多个 ...

  9. Hugging Face 入选 Time《时代周刊》2023 全球前 100 最具影响力的公司

    喜报 Hugging Face 入选 Time<时代周刊>2023 全球前 100 最具影响力的公司 继续为梦想努力 继续为开源贡献 榜单链接: https://time.com/100c ...

  10. 从数据链路到神秘的MAC地址和ARP协议

    引言 链路是指从一个结点到相邻结点的一段物理线路.数据链路是在链路的基础上增加了一些必要的硬件和软件.这些硬件包括网络适配器,而软件则包括协议的实现.在网络中,主机.路由器等设备都必须实现数据链路层. ...