目录

一、背景

二、按照功能划分

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. 不是银趴~是@Import!

    首先我们要明确:@Import 注解是 Spring 提供的. 然后我们看一下该注解的官方注释: Indicates one or more component classes to import - ...

  2. 快速批量升级 NugetPackage 版本

    批量升级项目中的 Nuget 有时候我们需要升级整个解决方案中的某些Nuget版本,如果每个手动使用NuGet Package Manager 会很麻烦.经过一个周末的踩坑,我找到一个解决方案. Na ...

  3. Provider的八种提供者

    代码 class Example extends StatelessWidget { @override Widget build(BuildContext context) { return Sca ...

  4. Java 创建/编辑/删除Excel迷你图表

    迷你图是Excel工作表单元格中表示数据的微型图表.使用迷你图可以非常直观的显示数据变化趋势,突出最大值.最小值,放在数据表格中可起到很好的数据分析效果.本文将通过Java代码示例介绍如何在Excel ...

  5. 探索Reactor网络模型在当今应用领域的革新

    本文分享自华为云社区<驾驭网络技术的未来:探索Reactor网络模型在当今应用领域的革新>,作者: Lion Long . 本文介绍了Linux网络设计中的Reactor网络模型及其在实际 ...

  6. npm install过程中遇到typings deprecated的warning该怎么处理

    摘要:在项目里进行npm install操作的时候,发现typings.json文件里的一些定义文件爆出了已经弃用的警告,怎么办? 本文分享自华为云社区<npm install过程中遇到typi ...

  7. DarkMode(2):深色模式解决方案——css颜色变量实现Dark Mode

    暗黑模式实现,最初的设计,就是参考之前的主题模式.所谓多套主题/配色/皮肤,就是我们很常见的换肤功能.换肤简单的实现就是更换 css实现不同样式呈现不同肤色. 之前做不同颜色的皮肤,暗黑模式可以单做其 ...

  8. Mvc管道模型和处理请求的流程

    管道事件 ASP.NET MVC请求到响应的基本流程 原文链接:https://blog.csdn.net/qq_37112587/article/details/112340916

  9. Linux系统用户态和内核态

    Unix/Linux的体系架构 如上图所示,从宏观上来看,Linux操作系统的体系架构分为用户态和内核态(或者用户空间和内核空间).内核从本质上看是一种软件-----控制计算机的硬件资源,并提供上层应 ...

  10. ORM执行SQL 双下划线查询 ORM外键字段创建 外键字段相关操作 ORM跨表查询 跨表查询进阶操作

    目录 ORM执行SQL语句 方式1:使用pymysql模块 方式2:使用raw方法 方式3:django connection 双下划线查询 __gt(>) __lt(<) queryse ...