是一款优秀的开源测试工具, 是每个资深测试工程师,必须掌握的测试工具,熟练使用Jmeter能大大提高工作效率。
熟练使用Jmeter后, 能用Jmeter搞定的事情,你就不会使用LoadRunner了
1.能够对HTTP和FTP服务器进行压力和性能测试,也可以对任何数据库进行同样的测试
2.完全的可移植性和100%纯Java
3.完全Swing的轻量级组件支持
4.完全多线程框架允许通过多个线程并发取样和通过单独的线程组对不同的功能同时取样
5.精心的GUI设计允许快速操作和更精确的计时
6.缓存和离线分析/回放测试结果
7.高可扩展性:
可链接的取样器允许无限制的测试能力
各种负载统计表和可链接的计时器可供选择
数据分析和可视化插件提供了很好的可扩展性以及个性化
具有提供动态输入到测试的功能
支持脚本变成的取样器
一 下载
http://jmeter.apache.org/download_jmeter.cgi
下载后直接解压,点击bin/jmeter.bat 即可开启
二 设置
1. 默认英文,可以调整为中文或其他
步骤: options->choose language->chinese(simplified)
2.背景色设置
默认黑色背景,可以调整
步骤: 选项(options)->外观(look and feel)->windows(就是白色背景了)
3. 返回结果中文乱码
jmeter_home/bin 修改配置文件jmeter.properties,加上如下行,然后重启
sampleresult.default.encoding=utf-8
三 实例搞起来
参考 https://www.cnblogs.com/sddai/p/9901858.html
四 如何并发
https://blog.csdn.net/qq_36350532/article/details/80556122
打开线程组,设置如下参数
number of Threads(users) 并发量, 比如设置为100
ramp-up period (in seconds) 多长时间内初始化完这些线程。单位是秒。我这里设置的是10秒启动100个也就是1秒启动10。
五 基础组件介绍
https://blog.csdn.net/u013434475/article/details/87891329
六 进阶之路
https://www.hissummer.com/
https://www.yiibai.com/jmeter/jmeter-basic-terminology.html
https://www.hissummer.com/jmeter-summary.html
视频教程
https://edu.51cto.com/course/13251.html
七 面试题
面试题1:你平常做接口测试的过程中发现过哪些bug?
分析:很多面试官希望通过这个问题来判断求职者是否真的做过接口测试。
思路:回答这个问题可以从接口测试的内容,并结合接口测试相比页面测试的优势来回答,然后结合具体的案例来让我们的回答更丰满。
接口测试优势:可以发现很多在页面上操作发现不了的bug。可以修改请求参数,突破前端页面输入限制。
举例说明
1、比如一个订单支付时,我们页面上是无法改变订单金额的,但我们可以通过抓包工具捕获订单支付请求,然后修改订单金额后提交,然后出现了一个原价100元的订单我们用1分钱完成了支付。
2、比如一个转账的页面,前段做了限制导致我们无法在转账金额的输入框输入负数,但我们可以通过抓包工具修改,然后出现了一个转账金额为负数的bug。
面试题2:平常你是怎么测试接口的?
分析:面试官通过这个问题判断求职者是否做过接口测试,以及测试的深度。
思路:接口测试的功能点(连通性、功能、性能、安全等)决定了接口测试执行的方式,有手工、自动化等。我们可以分别进行回答。
手动测试
1、webService接口:可以使用的工具有SoapUI、jmeter、loadrunner等;
2、http api接口:可以使用的工具有postman、RESTClient、jmeter、loadrunner等。
自动化测试
自己开发
第三方工具:SoapUI、 RobotFramework + HttpLibrary 。。。
性能测试
自己开发
第三方工具:Jmeter、 Gatling、LoadRunner。。。
面试题3:平常用什么工具测接口的?
第三方工具:Jmeter、 Gatling、LoadRunner。。。
面试题4:没有接口文档,如何做接口测试?
分析:如果我来问这个问题,原因可能是因为我的公司就是这个情况,然后看看求职者是否能适应这个情况。
思路:先跟开发经理沟通,让他抽点人去整理接口文档; 然后我也会自己用抓包工具整理整理接口。
面试题5:依赖于第三方数据的接口如何进行测试?
这个标准答案是:mock
接着面试官追问如何使用mock?这点可以从搭建mock来回答。
面试题6:当一个接口出现异常时候,你是如何分析异常的?
思路:
1.用fiddler等工具进行抓包,看请求报文和返回报文(浏览器可以使用F12)
2.查看后端日志
面试题9:如何分析一个bug是前端还是后端的?
思路:
先抓包看请求报文,对照接口文档,查看请求报文是否有问题,有问题就是前端发的数据不对。请求报文没问题,那就看返回报文,返回的数据不对,那就是后端开发的问题。
面试题10:什么时候会用到使用Fiddler?
1)、做安全测试,检测敏感信息是否加密,拦截篡改数据;
2)、当测试时发现缺陷,用fiddler抓包,定位该问题是前端还是后台的 问题;
3)、模拟弱网环境。
面试题11:Jmeter并发量设置多少
threadcount, 根据需求来设计合理的值
Jmeter怎么录制,怎么过滤,线程组有哪些内容?
jmeter可以使用第三方的录制工具(badboy)或者使用自身的软件的录制功能进行,
jmeter录制原理:是通过代理http服务器抓取用户操作网站过程中的链接。
jmeter可以在设置http代理服务器的时候,过滤掉不需要的css、gif等内容。
线程组包括:线程组名、注释、线程组中的用户数量、线程组在多少时间发送完请求、循环次数、时间调度