Jmeter手动编写脚本详解(Jmeter 5.3 & jdk1.8.0_201)
思路
压测时需要发送大量请求到服务器,从而对服务器造成压力,以进行性能测试。Jmeter的作用就是帮助我们模拟大量请求。
所以需要我们回答的问题仅仅是:如何正确模拟请求?
答案只有两步:
- 找到正确的请求;
- 照抄。
继续分析。
-
那么什么是正确的请求?
我的理解是:服务器想要的请求,才是正确的请求,除此之外的说了都不算。而服务器作为计算机,它想要还是不想要,可太好判断了。(没有借机嘲讽人类的意思)
根据 服务器返回给我们的响应信息 判断即可。 -
怎么照抄?
略。
至此,我们要怎么做,已经比较明朗了:
根据正确的响应信息确定正确的请求——然后抄。
执行步骤
以【进入B站搜索“saber”】为例。
步骤一:判断正确的响应信息
- 怎么判断web请求的响应是否正确呢?
怎么看呢怎么看呢?
——当然是能看到saber就是正确的啦~咳咳此处请忽略查询结果
这就够了吗?好像哪里不对。
请求呢?我们要找的那么大一个请求呢?
显然,这里需要能捕捉到 我们在web页面操作时所发出的请求 的工具,也就是抓包工具。常用的有: - F12开发者工具:以Chrome浏览器为例,依次 右键-检查-Network,就能看到被抓到的请求了。而页面上吾王熠熠生辉的脸无疑证实着这些请求是多么正确,多么值得信任。
- Fiddler:Windows系统常用的抓包工具
这里带锁是因为这个请求是https请求。 - Charles:Mac系统常用的抓包工具,界面比较美观,收费。
当然,实际上判断请求是否正确,最终还是看响应回来的信息本身。毕竟我们虽然看到了saber,但是并不能确定是哪条请求返回了这个saber。只有找到那条返回了saber的请求,才能确定是我们要找的请求。
小常识:这里点击【搜索】前先清空请求,可以保证 执行了搜索操作 的请求肯定包含在了新捕捉到的请求里面,从而有效缩小了我们的搜查范围。
步骤二:开启写轮眼模式
最终确定了这条是我们要找的请求,是标准答案。
现在我们要做的,就是在Jmeter中发送出和它完全相同的请求。
首先在Jmeter中进行一些准备工作,就像我们搜索saber时需要我们操作一样,Jmeter发送请求也需要准备好虚拟的人:
在【测试计划】添加线程组
虚拟用户是用来发请求的,我们把发送请求的模板加上:
在【线程组】添加HTTP请求
接下来的思路很简单,发送请求需要什么,我们就从标准答案里找什么,然后拿过来填上。
- 请求需要url:
安排上: - 请求需要请求头:
找到Request Headers,全部复制
在Jmeter中找到专门存储请求头的元件,【HTTP 请求】—【添加】—【配置元件】—【HTTP 信息头管理器】,点击下方的 【从剪贴板添加】,一键粘贴:
- 请求需要请求体:
get请求没有请求体。