之前公众号推文一上手就分享如何测接口, 其实忽略了一些概念性的东西, 今天来给大家拾遗补缺, 做个回顾吧.
成都创新互联公司服务项目包括云和网站建设、云和网站制作、云和网页制作以及云和网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,云和网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到云和省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
一. JMeter介绍
jmeter能做什么,来自官网的解释:
Ability to load and performance test many different applications/server/protocol types:
- Web - HTTP, HTTPS (Java, NodeJS, PHP, ASP.NET …) 
- SOAP / REST Webservices 
- FTP 
- Database via JDBC 
- LDAP 
- Message-oriented middleware (MOM) via JMS 
- Mail - SMTP(S), POP3(S) and IMAP(S) 
- Native commands or shell scripts 
- TCP 
- Java Objects 
Jmeter可以模拟大量负载测试网络或者对象, JMeter是用java语言开发的application,比较消耗memory和CPU, 当模拟大并发用户时候, 单台模拟就有些力不从心. 同时jmeter可以帮助我们进行回归测试, 通过测试脚本和断言来验证程序返回的预期值.
JMeter与 LR 比较:
Jmeter是apache 组织下的开源测试工具(长得不太英俊), 与LR比较有很多不足, 但是它具备很多优点, 让无数测试工程师对它欲罢不能, 而放弃了LR的华而不实(虽然很帅, 但功能太多,上手困难).
- 开源, 就意味着免费 
- 小巧, 相比LR的庞大(好几个G的安装包),jmeter非常小巧, 无需安装, 仅java环境 
- 功能强大, 一个简单的web性能测试工具, 不断更新扩展, 可以完成DB, FTP, LDAP, webservice, TCP 等测试, 还可以自由扩展丰富插件. 
- 跨平台, 可以在任意系统上运行, Linux, Unix, Mac os, Ubuntu, centos, windows等. 
LR运行环境无法脱离windows, 且是商业收费软件.
缺点:
Jmeter不支持IP欺骗, LR支持.
结果分析能力相对LR不够详细.
二 .Jmeter 下载安装
1)安装
官网提供jmeter 版本下载:http://jmeter.apache.org/
jmeter 3.2以后版本都需要jdk1.8 环境
2)插件安装
下载插件后到%jmeter_home%/lib/ext目录下, 重启jmeter即可生效
3)运行jmeter
1. 进入bin目录运行jmeter
windows环境, 进入jmeter/bin 目录, jmeter.bat即可运行jmeter
Mac os, Ubuntu等环境, 进入jmeter/bin 目录, 点击jmeter 即可运行jmeter
2.语言选择
菜单: 选项->选择语言->选择个人喜好的语言
3. classPath
如果是自己开发的jar包在jmeter中使用, 那方法和插件是一样的, 放在lib/ext目录下
三.Jmeter测试计划
1)test plan
打开jmeter默认已经创建了测试计划
来自官网的说明, 可以创建多种test plan

2) Threads

- setup Thread Group 
是所有真正开始线程并发之前的准备工作,必须是在线程组开始之前完成并且拥有自己独立的线程设置;setUp Thread Group类似于lr的init.可用于执行预测试操作。
- teardown thread group 
是所有线程执行测试结束后执行定期的线程组. 拥有自己独立的线程设置;
tearDown Thread Group类似于lr的end.可用于执行测试后动作。
- thread group 
我们通常添加运行的线程。可以看做是一个虚拟用户组,线程组中的每个线程都可以理解为一个虚拟用户。线程组中包含的线程数量在测试执行过程中是不会发生变化的.

Ramp-Up Period(in seconds)表示在这个时间内创建完所有的线程。如有3个线程,Ramp-Up=10秒,那么线程的启动时间间隔为10/3=3.33秒. 这样的好处是:一开始不会对服务器有太大的负载,线程组是为模拟并发负载而设计。
循环次数:表示每个线程执行多少次请求
3)模板
模板是一个非常好用功能

点击模板, jmeter GUI已经为你预定好了各种test plan,选择一个自己需要的类型, 所见即所得的创建线程组里的内容, 你只要做的就是修修改改


这种方式为我们节省了很多时间
4)Sampler
这个我们非常熟悉了, HTTP Request Sampler 、 FTP Request Sampler 、TCP Request Sampler 、 JDBC Request Sampler 等,每一种不同类型的 sampler 可以根据设置的参数向服务器发出不同类型的请求,其中还有两种比较特殊的sampler, java sampler和Beanshell sampler

5)Timer
定时器用于设置等待时间. 等待时间是性能测试中常用的控制客户端QPS/TPS的手段。类似于LoadRunner里面的“thinktime”。 JMeter 定义了Bean Shell Timer、Constant Throughput Timer、固定定时器等不同类型的Timer。
6) Pre-Processor Elements
意为前置处理器,用于对于取样器进行处理,且是在sampler启动之前执行,此处和后置处理器是有所区别的, 如用户参数 beanshell PreProcess 等

7) Post-Processor Elements
在测试过程中,经常需要从响应数据中找到某些参数,作为下一个请求的参数,这时候需要用到后置处理器 如正则表达式, json取样器, beanshell PostProcess,就属于这一类

8) Assertions
断言就不用多介绍了, 我们经常在使用, 同时jmeter提供丰富的断言, 还可以组合着一起用.
9) Listeners
监听器提供了很多丰富的结果信息, 包含图形的和数字的, 是用来对测试结果数据进行处理和可视化展示的一系列元件,图形结果、查看结果树、聚合报告、用表格察看结果都是我们经常用到的元件
10) Configuration Elements
配置元件, 类似的有csv 数据元件, http信息管理头, http cookie管理器, 用户定义变量, 计数器, 随机变量等 都属于配置元件.

配置元件在我们的线程组里经常出现, 比如接收到的cookie可以存储为JMeter线程变量。要将cookie保存为变量,需定义属性“cookiemanager .save.cookie =true”
11) Execution order
执行顺序, 来自官网的解释
- Configuration elements 
- Pre-Processors 
- Timers 
- Sampler 
- Post-Processors (unless SampleResult is null) 
- Assertions (unless SampleResult is null) 
- Listeners (unless SampleResult is null) 
12) Properties and Variables
属性和变量, jmeter的属性都定义在jmeter.properties,这个属性作用域是global的,用户也可以自定义变量
13) jmeter命令行
jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]
& increase Java Heap to meet your test requirements:
Modify current env variable HEAP="-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m" in the jmeter batch file
Check : https://jmeter.apache.org/usermanual/best-practices.html
今日精选推荐
JMeter接口测试-if控制器
JMeter数据库操作
Jmeter接口测试-正则表达式
JMeter中文返回乱码
Jmeter接口测试-参数化
JMeter接口测试-基础
测试-感想
咨询工作加微信

扫描二维码
欢迎自荐和推荐, 需要的微信推送简历!
请猛戳下面二维码了解更多

网站题目:JMeter简单回顾
当前URL:http://www.scyingshan.cn/article/gcsejc.html

 建站
建站
 咨询
咨询 售后
售后
 建站咨询
建站咨询 
 