[转帖]jmeter编写测试脚本大全
目录
3.1.5 请求 /xxx/xxxx/getSession获取 token与key
3.1.6 请求 /xxx/xxx/getVerificationCode?token=${token}获取验证码
一、背景
使用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
-
import java.io.BufferedReader;
-
import java.io.BufferedWriter;
-
import java.io.FileReader;
-
import java.io.IOException;
-
-
FileWriter fileWriter = new FileWriter(new File(vars.get("data_file_path_token")), true);
-
BufferedWriter writer = new BufferedWriter(fileWriter);
-
-
-
String TOKEN = vars.get("token");
-
writer.append(TOKEN+"\r\n");
-
writer.close();
-
fileWriter.close();
data_file_path_token 为本地文件的路径
2.9 beanshell 读取本地txt
-
import java.io.BufferedReader;
-
import java.io.BufferedWriter;
-
import java.io.FileReader;
-
import java.io.IOException;
-
String data_file_path = "/xxx/user.txt";
-
-
-
FileReader filereader = new FileReader(new File(data_file_path));
-
BufferedReader reader = new BufferedReader(filereader);
-
-
-
-
-
String line = reader.readLine();
-
reader.close();
-
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写入到本地文件
-
import java.io.BufferedReader;
-
import java.io.BufferedWriter;
-
import java.io.FileReader;
-
import java.io.IOException;
-
-
FileWriter fileWriter = new FileWriter(new File(vars.get("data_file_path_token")), true);
-
BufferedWriter writer = new BufferedWriter(fileWriter);
-
-
-
String TOKEN = vars.get("token");
-
writer.append(TOKEN+"\r\n");
-
writer.close();
-
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="{"spm":"1001.2101.3001.6471"}" data-report-view="{"spm":"1001.2101.3001.6471"}">
<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性能测试基础 (4)-使用JMeter录制测试脚本
在进行压力测试时,由于很多web页面包含了Ajax异步请求等内容,为模拟用户真实输入,除了对html的访问外,还需要将其它的访问考虑入内,这时最好的办法就是对实际访问过程中的所有请求进行录制. 例如, ...
- [转]jmeter 自定义测试脚本
http://blog.csdn.net/kash_chen007/article/details/37690411 http://wangym.iteye.com/blog/731729 1.创建一 ...
- 用python编写测试脚本
def f(n): """ >>>f(1) 1用例 >>>f(2) 2用例 ...... >>>f(n) n用例 & ...
- 用BlazeMeter录制JMeter测试脚本
工具: 1,JMeter 2,Chrome 3,BlazeMeter 4,SwitchyOmega(如果需要代理) 步骤: 以上工具准备好以后就可以录制JMeter的测试脚本了, 在Chrome中点击 ...
- 菜鸟教程之工具使用(十)——用BlazeMeter录制JMeter测试脚本
工具: 1,JMeter 2,Chrome 3,BlazeMeter 4,SwitchyOmega(如果需要代理) 步骤: 以上工具准备好以后就可以录制JMeter的测试脚本了, 在Chrome中点击 ...
- 用BlazeMeter录制JMeter(三十五)测试脚本(转载)
转载自 http://www.cnblogs.com/yangxia-test 工具: 1,JMeter 2,Chrome 3,BlazeMeter 4,SwitchyOmega(如果需要代理) 步骤 ...
- python+pytest接口自动化(12)-自动化用例编写思路 (使用pytest编写一个测试脚本)
经过之前的学习铺垫,我们尝试着利用pytest框架编写一条接口自动化测试用例,来厘清接口自动化用例编写的思路. 我们在百度搜索天气查询,会出现如下图所示结果: 接下来,我们以该天气查询接口为例,编写接 ...
- 实践作业2:黑盒测试实践——编写自动化脚本并拍摄测试过程视频 Day 6
下午下课之后小组成员一起交流了一下实验过程遇到的一些问题,并汇总了下各个项目完成情况 该实验目前(写博客是时间)基本完成,具体情况如下 (1)分析系统需求 .(done) (2)设计测试用例.(don ...
- jmeter压力测试笔记- HTTP协议
一.目标 使用jmeter进行HTTP接口压力测试: 命令行方式运行,方便在linux环境运行: 二.面临的问题 支持多环境测试(开发.测试.生产环境) 支持用户数据.线程数.循环次数等配置在运行时自 ...
- Postman—测试脚本
前言 对于Postman中的每个请求,我们都可以使用JavaScript语言来开发测试脚本.这也就好比单元测试.我们先看看Postman的相关界面: 编写测试脚本 Postman测试脚本本质上是在发送 ...
随机推荐
- 不是银趴~是@Import!
首先我们要明确:@Import 注解是 Spring 提供的. 然后我们看一下该注解的官方注释: Indicates one or more component classes to import - ...
- 快速批量升级 NugetPackage 版本
批量升级项目中的 Nuget 有时候我们需要升级整个解决方案中的某些Nuget版本,如果每个手动使用NuGet Package Manager 会很麻烦.经过一个周末的踩坑,我找到一个解决方案. Na ...
- Provider的八种提供者
代码 class Example extends StatelessWidget { @override Widget build(BuildContext context) { return Sca ...
- Java 创建/编辑/删除Excel迷你图表
迷你图是Excel工作表单元格中表示数据的微型图表.使用迷你图可以非常直观的显示数据变化趋势,突出最大值.最小值,放在数据表格中可起到很好的数据分析效果.本文将通过Java代码示例介绍如何在Excel ...
- 探索Reactor网络模型在当今应用领域的革新
本文分享自华为云社区<驾驭网络技术的未来:探索Reactor网络模型在当今应用领域的革新>,作者: Lion Long . 本文介绍了Linux网络设计中的Reactor网络模型及其在实际 ...
- npm install过程中遇到typings deprecated的warning该怎么处理
摘要:在项目里进行npm install操作的时候,发现typings.json文件里的一些定义文件爆出了已经弃用的警告,怎么办? 本文分享自华为云社区<npm install过程中遇到typi ...
- DarkMode(2):深色模式解决方案——css颜色变量实现Dark Mode
暗黑模式实现,最初的设计,就是参考之前的主题模式.所谓多套主题/配色/皮肤,就是我们很常见的换肤功能.换肤简单的实现就是更换 css实现不同样式呈现不同肤色. 之前做不同颜色的皮肤,暗黑模式可以单做其 ...
- Mvc管道模型和处理请求的流程
管道事件 ASP.NET MVC请求到响应的基本流程 原文链接:https://blog.csdn.net/qq_37112587/article/details/112340916
- Linux系统用户态和内核态
Unix/Linux的体系架构 如上图所示,从宏观上来看,Linux操作系统的体系架构分为用户态和内核态(或者用户空间和内核空间).内核从本质上看是一种软件-----控制计算机的硬件资源,并提供上层应 ...
- ORM执行SQL 双下划线查询 ORM外键字段创建 外键字段相关操作 ORM跨表查询 跨表查询进阶操作
目录 ORM执行SQL语句 方式1:使用pymysql模块 方式2:使用raw方法 方式3:django connection 双下划线查询 __gt(>) __lt(<) queryse ...