jmeter 入门到精通_墨瑶_165的博客-CSDN博客_jmeter菜鸟入门到进阶
一、jmeter实际模拟一个http请求 以后就可以用jmeter来压测接口了,而且是从前端http接口层面的压测。 1、背景背景很简单就是想用jmeter模拟一个实际业务中用到的http请求,对应功能点如下。
其对应的接口,请求时候所带的cookie、参数、payload等都可以在开发者工具中看到。
注:晚上请求百度的case很多了,没什么可说的。我们这里作为一个saas软件直接去模拟,显然是要考虑登录态(cookie)等情况才行的;为此有必要专门演示一把。
2、具体步骤打开浏览器调试工具,打开jmeter。
(1)利用jmeter的 import from cURL进行导入。
①调试工具中选中目标接口→右键→copy→copy as cURL
注:其copy下来的其实是如下一串结果。按理来说应该是包括所有的必要信息了才是。
curl 'https://testgateway.qidian.qq.com/v1/interface/inner/cloudcc_303213'
-H 'authority: testgateway.qidian.qq.com'
-H 'accept: application/json, text/plain, */*'
-H 'accept-language: zh-CN,zh;q=0.9'
-H 'content-type: application/json'
-H 'cookie: login_url=https%3A%2F%2Foaconsole.qidian.qq.com%2Flogin%2F%3Fshow_type%3Dqa%26source%3Dworkbench; d2=Tcxl6Jtcmi8MwUIZvsayrx7yxmoeO0z6CGTBYhD59zvH1JjuFqQBzAzSLoG50Z0W93RXa1giPvYP14sswnxOMGCYLgR0SygSguzlcjr14zu8pEnRkRQ3D3Cna19tOi0ooGy0RZeBvn3mrBjaKGFewVadcAnb2xu6lx18ZBN8Z4YM0l8XeBecL+E1W2NOnNQud44gYmp6nLzJg/nQbq0WGoAZ31YcIF4zkS3XFQ+Ip3OhDsTSJvT78g==; corp_uin=2852199388; aid=3007442117; aid_skey=belsR+0zPsl3noSHqgbQUEcY2xngQtQ+yrunvtMpyDtEhJnCOJ3oVymCaaWPnUvZsJpG42neuoazR48ylhQFwPrerrlH2OoL19oEADpcGL6xGGVXQj1XUvnjlNyjWbovPHqfPXzY+De61sTHYYJTvdl3jVoo2FmIkUc6zriSQ3Q=; login_type=workbench; source=workbench; logout_type=workbench; qd_admin_is_web=yes; qd_aid_encode=bfbf632e80afd3bb63602fe46a812976; qdui_loginaccount=fy@2852199388.qidian; _qddaz=QD.801755194539948; __qidianid=e90872176fae3c53cec8df003802269745d3f01d; XSRF-TOKEN=31215d2f6c088e58e22172ff18efa52a09516396; _bqqcsrf=31215d2f6c088e58e22172ff18efa52a09516396; _bqq_csrf=31215d2f6c088e58e22172ff18efa52a09516396'
-H 'origin: https://oaadmin.qidian.qq.com'
-H 'referer: https://oaadmin.qidian.qq.com/'
-H 'sec-ch-ua: " Not A;Brand";v="99", "Chromium";v="102", "Google Chrome";v="102"'
-H 'sec-ch-ua-mobile: ?0'
-H 'sec-ch-ua-platform: "macOS"'
-H 'sec-fetch-dest: empty'
-H 'sec-fetch-mode: cors'
-H 'sec-fetch-site: same-site'
-H 'user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.61 Safari/537.36'
-H 'x-gseq: 1655199907746'
-H 'x-requested-with: XMLHttpRequest'
-H 'x-xsrf-token: 31215d2f6c088e58e22172ff18efa52a09516396'
--data-raw '{"label_data":{"rpt_label_item":[],"bool_is_solved":false,"str_summary":"shuozhuosummery"},"session_head":{"uint32_channel_type":4,"uint64_kfuin":2852199388,"uint64_kfextuin":3007442117,"str_visitid":"894554834464981"},"_bqq_csrf":"31215d2f6c088e58e22172ff18efa52a09516396","_t":"1655199907746"}'
--compressed
②利用jmeter的导入工具直接导入cURL
将前面复制的结果直接粘贴到方框中→Create Test Plan
注:这个导入后其实就把大部分信息都导入进去了。例如header里面的大部分信息、协议/域名ip、http请求方式、路径等;另外payload参数其实也被导入进去了。如下:
③添加cookie
浏览器中右键copy as value赋值cookie至剪切板→ jmeter中 选中HTTP HeaderManager → 点击右侧下方的“从剪贴板添加”→之后就可以在上面的<名称,值>中看到对应的添加项了。
注:之所以有这个问题是因为下图中确实没有cookie,按理来说上面复制的cURL是包括cookie信息的,但是这里确实没有被解析出来,所以我们需要额外添加一把。
值得注意的是:默认的解析可能是有问题的。例如我这里就被解析成如下形式了。
其实很简单就是开发者工具里面看到的
④执行
点击如下run按钮→按照提示保存对应的.jmx文件。
⑤查看具体请求的结果
然后我们就可以在结果树(View Result Tree)中看到执行结果了。如下选中一个具体的请求,然后就可以查看取样器结果、请求、相应数据。
注:如下图所示的相应数据其实就是后台业务服务返回的信息了。至此说明访问完全是通的了。
⑥查看统计报告/聚合报告
如下添加对应的汇总报告、聚合报告即可。
相关知识点:
jmeter添加cookie:这里
jmeter配置payload参数:这里
注意点:
(1)点击执行后jmeter默认是挨个执行每个线程组,不需要执行的就右键"禁止"比较好。
因为jmeter不支持socket请求,所以如果需要这么用的话就要安装几个插件。晚上搜一下也有很多教程,这个也没什么可说的。例如 这里
如果什么都不做的话是打不开含有websocket的测试计划文件的(.jmx文件),如下:
安装方法也很简单,下载插件文件然后放到jmeter的/lib/ext路径下,然后在重启jmeter就好了。
链接: https://pan.baidu.com/s/143eZLHZDYkBfyrr7Af9eDA 提取码: dcko
注:jmeter文字报告看起来还是不够直观,结合grafana可以实现更炫酷的展示。 三、jmeter的可视化—— grafana查看输出结果Jmeter自身提供的数据分析面板太过粗糙,并且只能在压测任务执行结束才可以看到结果。关于这个问题其实可以额外再借助influxdb和grafana实现更生动、形象的实时监控。接下来介绍JMeter+InfluxDB+Grafana打造可视化实时监控。
其实可以参照的文章也不少,晚上一搜有很多。
JMeter+InfluxDB+Grafana实现可视化实时监控_luq89的博客-CSDN博客_jmeter+grafana+influxdb
用docker可能更省事:测试开发实战 | Docker+Jmeter+InfluxDB+Grafana 搭建性能监控平台 - 云+社区 - 腾讯云



