jmeter入门案例(二)
jmeter入门简介(一)下载及元件介绍https://www.cnblogs.com/wish5714/p/9714930.html
jmeter典型的http请求示例
业务场景
银行卡收单交易,模拟100W商户进行入金交易,模拟对手方账户为2个
场景分析
鉴于场景可知
1、需要造100W商户信息
2、需要将100W笔交易随机分布在模拟的2个对手方账户上,即入参随机为2个账户z
测试计划搭建
1、建立线程组:右键testplan---->添加线程---->添加线程组
2、建立http请求:右键线程组---->创建取样器---->http请求
其中‘消息体数据’中的${},意味着变量,其中${__}开头的为预定义的函数,位置在---->选项---->函数助手对话框;其它的变量稍后会给出在哪设置
3、预定义函数使用:位置在---->选项---->函数助手对话框
其中有两个参数,一个是时间格式,另一个是变量名,即你在其它地方使用时可以使用该变量名,
然后点击生成,将函数字符串复制到请求报文中即可,请求报文见步骤2
The result of the function is:即该函数的返回值
Current JMeter Variables:即使用该函数后,将在jmeter的当前线程中产生的内部变量
更多函数的使用可以自己研究下,官方文档https://jmeter.apache.org/usermanual/functions.html
4、添加配置元件----http信息头管理器
该配置主要补充HTTP请求的头部,这里将交易报文格式设置为json格式
操作步骤:右键http请求---->添加---->配置元件---->http信息头管理器
5、添加配置元件----csv数据文件设置
操作步骤:右键http请求---->添加---->配置元件---->csv数据文件设置
该步操作的目的是为了读取已造好的100W的商户数据(该步操作可以通过读取数据库来实现,即不需要读取本地csv文件,后续章节会涉及),这里采用读取本地文件方式。
变量名称:即csv中每列对应的变量名(该变量名可以不和csv中的列名一致,只需要保持位置顺序一致即可,逗号隔开)
6、添加配置元件----计数器
操作步骤:右键http请求---->添加---->配置元件---->计数器
引用名称:即变量名
这里使用计数器是因为模拟的对手方账户只有2个,因此要根据计数器选择其中一个对手方账户,逻辑见第7步
7、添加前置处理器----BeanShell PreProcessor
操作步骤:右键http请求---->添加---->前置处理器---->BeanShell PreProcessor
这里用到了第6步中的计数器,即vars.get("num"),这里的vars即jmeter的内置变量,本质是map,因此采用get/put进行操作即可
这里可以看到将“supplierCode”放入了vars中,所以在请求报文中可以通过${supplierCode}获取到值
更多解释请参考https://blog.csdn.net/shimengran107/article/details/76849748
官方文档地址:https://jmeter.apache.org/usermanual/component_reference.html#BeanShell_PreProcessor
8、添加后置处理器----BeanShell PostProcessor
操作步骤:右键http请求---->添加---->后置处理器---->BeanShell PostProcessor
这里添加该处理器的目的是解决应答报文中的中文乱码
prev在这里指的是jmeter中的SampleResult类
更多操作见官方文档:http://jmeter.apache.org/usermanual/component_reference.html#BeanShell_PostProcessor
9、添加监听器----查看结果树
操作步骤:右键http请求---->添加---->监听器---->查看结果树
查看结果树的用途可以看到每一笔请求的详细情况,包括请求和响应的报文
另外可以设置“仅错误日志”,则只会显示异常的HTTP交易,可以将结果写入文件中,支持csv和jtl
更多操作见官方文档:http://jmeter.apache.org/usermanual/component_reference.html#View_Results_Tree
10、添加监听器---->聚合报告
操作步骤:右键http请求---->添加---->监听器---->聚合报告
该页面可以展示一些经过统计的数据
label | samples | average | median | 90%line | 95%line | 99%line | min | maximum | Error% | throughPut | received KB/SEC | send kb/sec |
分组 | 请求量 | 平均值 | 中值 | 90%的请求的ms | 95%的请求的ms | 99%的请求的ms | 最小值 | 最大值 | 错误率 | tps | 接收的数据量 | 发送的数据量 |
更多信息见官网:http://jmeter.apache.org/usermanual/component_reference.html#Aggregate_Report
11、测试
至此,该测试计划配置结束,接下来介绍怎么运行
该篇结束,下篇介绍非GUI模式测试,重点在报告详情分析
https://www.cnblogs.com/wish5714/p/9724935.html
jmeter入门案例(二)的更多相关文章
- Quartz应用实践入门案例二(基于java工程)
在web应用程序中添加定时任务,Quartz的简单介绍可以参看博文<Quartz应用实践入门案例一(基于Web应用)> .其实一旦学会了如何应用开源框架就应该很容易将这中框架应用与自己的任 ...
- Quartz应用实践入门案例一(基于Web环境)
Quartz是一个完全由java编写的开源作业调度框架,正是因为这个框架整合了许多额外的功能,所以在使用上就显得相当容易.只是需要简单的配置一下就能轻松的使用任务调度了.在Quartz中,真正执行的j ...
- _00017 Kafka的体系结构介绍以及Kafka入门案例(0基础案例+Java API的使用)
博文作者:妳那伊抹微笑 itdog8 地址链接 : http://www.itdog8.com(个人链接) 博客地址:http://blog.csdn.net/u012185296 博文标题:_000 ...
- Python爬虫Scrapy(二)_入门案例
本章将从案例开始介绍python scrapy框架,更多内容请参考:python学习指南 入门案例 学习目标 创建一个Scrapy项目 定义提取的结构化数据(Item) 编写爬取网站的Spider并提 ...
- Java开发学习(二)----IOC、DI入门案例
一.IOC入门案例 1.1 思路分析 (1)Spring是使用容器来管理bean对象的,那么管什么? 主要管理项目中所使用到的类对象,比如(Service和Dao) (2)如何将被管理的对象告知IOC ...
- Java开发学习(二十三)----SpringMVC入门案例、工作流程解析及设置bean加载控制
一.SpringMVC概述 SpringMVC是隶属于Spring框架的一部分,主要是用来进行Web开发,是对Servlet进行了封装.SpringMVC是处于Web层的框架,所以其主要的作用就是用来 ...
- Spring(二)--Spring入门案例
Spring入门案例 1.需要的实体类 2.需要的接口和实现类 3.需要的service和实现类 /** * service层的作用 * 在不改变dao层代码的前提下,增加业务逻辑操作 */ publ ...
- SpringMVC入门案例及请求流程图(关于处理器或视图解析器或处理器映射器等的初步配置)
SpringMVC简介:SpringMVC也叫Spring Web mvc,属于表现层的框架.Spring MVC是Spring框架的一部分,是在Spring3.0后发布的 Spring结构图 Spr ...
- Struts2第一个入门案例
一.如何获取Struts2,以及Struts2资源包的目录结构的了解 Struts的官方地址为http://struts.apache.org 在他的主页当中,我们可以通过左侧的Apache ...
随机推荐
- Java小问题
Java中的小问题,放在这里备查. 1.匿名类模仿block排序 Collections.sort(names, new Comparator<String>() { @Override ...
- ELK + Filebeat 日志分析系统
ELK + Filebeat 日志分析系统 架构图 环境 OS:CentOS 7.4 Filebeat: 6.3.2 Logstash: 6.3.2 Elasticsearch 6.3.2 Kiban ...
- 7.STM32中GPIO理解
端口概述 在STM32中,每个I/O端口可以由软件配置成为输入/输出模式.复位期间或刚复位后,I/O端口被配置成浮空输入模式.所有的GPIO引脚有一个内部弱上拉和弱下拉,当配置为输入时, 它们可以被激 ...
- nginx1.14.0版本负载均衡配置
upstream配置: upstream upstream1 { server 192.168.10.130:8080; server 192.168.10.140:8080; #server 192 ...
- microsoft.jet.oledb.4.0 未注册
64位系统已经不支持4.0 解决办法 1.下载 ACE2010的驱动,64位的. http://www.microsoft.com/downloads/zh-cn/details.aspx?famil ...
- 廖雪峰Java8JUnit单元测试-2使用JUnit-2异常测试
1.异常测试 对可能抛出的异常进行测试: 异常本身是方法签名的一部分: * public static int parseInt(String s) throws NumberFormatExcept ...
- idea git commit撤销
到项目目录下,打开git bash 1.git log 找到要撤销的版本id1 commit之前的版本id2 2.git reset –hard id13.git reset id2 参考链接:htt ...
- LeetCode【104. 二叉树的最大深度】
最开始的想法就是递归,但是,自己想的太麻烦,每个节点与null相比较,如果都不为null,count就加一,然后输出count, 其实,这中间有很多错误,然后,就想着想着就绕不出来了.然后,重新思考了 ...
- [纯C#实现]基于BP神经网络的中文手写识别算法
效果展示 这不是OCR,有些人可能会觉得这东西会和OCR一样,直接进行整个字的识别就行,然而并不是. OCR是2维像素矩阵的像素数据.而手写识别不一样,手写可以把用户写字的笔画时间顺序,抽象成一个维度 ...
- VS2017离线版的SSDT安装包(包括SSIS)
VS2017离线版的SSDT安装包(包括SSIS) 装好SQL2016和VS2017后发现没有创建SSIS项目的接口,原来VS2017里是没有包含SSDT的安装包的. 下面是我整理好的包含中英文的VS ...