什么是JMeter

JMeter是Apache组织开发的开源软件,由Java语言实现。

主要用于软件系统性能测试,他最初被设计用于web测试,后来被扩展到其他领域。

Jmeter特点

http://www.51testing.com/html/34/505934-861655.html

java运行环境安装

下载jdk:https://www.oracle.com/technetwork/java/javase/downloads/index.html

java环境变量配置

参考这篇文章:https://www.cnblogs.com/xch-yang/p/7629351.html

jmeter下载

下载地址:http://jmeter.apache.org/download_jmeter.cgi

下载完成以后,解压文件夹,进入目录:

点击jmeter.bat进入jmeter界面:

jmeter环境变量配置(可配可不配)

可自行百度,不配置不影响使用可以忽略此步骤。

测试计划:

在展开性能测试的之前,我们要书写一份性能测试计划,主要包括一下几个点。

测试计划:测试对象(你要测试的对象),测试人员(我们自己) , 测试目标(性能指标) 总结

jmeter使用:

线程属性:

线程属性:

调度器:

点击调速器,可以进行持续时间设置,这里设置为30S,意思是线程一共要跑30s,然后结束。持续时间为5S意思为,点击开始执行按钮后,先不执行,五秒以后再执行。

我们找到多少人去访问你的程序,进行压力测试,那么我们应该在哪儿去添加你的程序呢?这个时候我们引入取样器这个概念。

取样器(Sampler):动作性元素

代表一次请求-响应的过程,他们是测试用例中动作的发起者,是测试用例的主题元素。

JMeter根据不同的应用预制了很多种动作元素,如果用户觉得仍然不够用设置可以用BeanShell 写自己的动作。

比如HTTP Request Sampler , FTP Request Sampler , JDBC Request Sampler等。

每一种不同类型的 Sample可以根据设置的参数向服务器发出不同类型的请求。

红色部分就是我们可以进行测试的类型,一般我们测试都是HTTP协议,这是我们访问百度一个请求:

如果上图没有看懂,建议复习下HTTP协议:https://www.cnblogs.com/Chamberlain/p/11064680.html

添加监听器

如果查看上面请求的结果呢,这个时候我们只需要添加监听器就可以了。

这些就是jmeter的监听器,常用的有 查看结果树 , 聚合报告等。我们逐一添加如下:

查看结果树:

聚合报告:

聚合报告各项参数解读:

Samples:样本数,即运行次数

Average:平均响应时间

Median:中位数,50%响应时间小于此值

90%line:90%响应时间小于此值

Min:最短响应时间

Max:最大响应时间

Error:未命中数/比率,即错误比率

Throughput:吞吐量——每秒完成请求事务数(可以理解成TPS或者QPS)

Kb/sec:每秒接收数据量

添加断言

当有一个请求,服务端会有响应,我们要检查响应结果是否正确,可以用肉眼去看,但是当工作量大的时候,我们不可能一个个看,这个时候需要断言。

我们一般添加 “响应断言”:

我们在测试模式输入框,输入baidu就是验证响应的内容有没有baidu,这个时候在运行一次,然后点击查看结果树。

错误的断言

这个时候我们把添加的断言随便输入杂乱的数据:

这个时候再运行一次,然后查看结果树:

这个时候你会发现HTTP请求编程红色了,这就表示断言失败,响应结果不包含你刚才输入的断言。

 

300个并发(一点点加 慢慢调试)

如果超时有个超时1000ms时间限制

聚合报告解读

Samples:样本数,即运行次数

Average:平均响应时间

Median:中位数,50%响应时间小于此值

90%line:90%响应时间小于此值

Min:最短响应时间

Max:最大响应时间

Error:未命中数/比率,即错误比率

Throughput:吞吐量——每秒完成请求事务数(可以理解成TPS或者QPS)

Kb/sec:每秒接收数据量

最新文章

  1. iOS APP 如何做才安全
  2. [UWP]创建自定义VisualState Trigger
  3. Android出现java.net.SocketException: Permission denied报错
  4. springMVC-mvc:annotation-driven
  5. Android—对话框
  6. javascript代码复用模式
  7. uva140 - Bandwidth
  8. hadoop部署工具与配置工具
  9. Linux - 简明Shell编程01 - 第一个脚本(HelloShell)
  10. 老男孩Python全栈开发(92天全)视频教程 自学笔记14
  11. C语言预备作业
  12. oracle的用户管理
  13. Ntrip协议简介(转)
  14. MySql数据库实现分布式的主从结构
  15. openstack Q版部署-----Mysql、MQ、Memcached安装配置(2)
  16. Linux下pn532板子测试学校水卡
  17. 【读书笔记】iOS-网络-HTTP-URL结构
  18. 腾讯游戏设计(tgideas.qq.com)回复处CSRF任意换马甲
  19. svn 提交代码 自动过滤技巧,自动过滤不想提交的文件和文件夹
  20. find命令之时间戳使用示例

热门文章

  1. 分分钟钟学会Python - 第四章 文件操作
  2. 缓存cache和缓冲区buffer
  3. springcloud alibaba-nacos配置中心
  4. 浮动引发的高度塌陷问题及其解决方法(BFC相关概念及性质)
  5. 心脏滴血(CVE-2014-0160)检测与防御
  6. [转载]Android MVC,MVP和MVVM 思想&例子
  7. Java 常见对象 05
  8. 在onBackPress中实现退出拦截时不生效
  9. cve-2019-2725 反序列化远程代码执行
  10. PicGo 图床配置【工具篇】