jmeter学习之路01(安装+siege)
1.打开 \jmeter-book:
a. 切换到书籍目录 cd F:\jmeter-book ,再次:cd _book,输入python -m http.server
b. 打开地址:http://localhost:8000/
2. 安装siege:https://www.jianshu.com/p/74c465ff136f
3. mac 安装jdk和python:https://www.cnblogs.com/wangqiao170/p/8888986.html
4. 在Linux上安装siege,然后编译,siege仅支持http,https不支持siege
Siege命令常用参数
-c 200 指定并发数200
-r 5 指定测试的次数5
-f urls.txt 制定url的文件
-i internet系统,随机发送url
-b 请求无需等待 delay=0
-t 5 持续测试5分钟
-H [Accept-Encoding:gzip] 加入请求头
# -r和-t一般不同时使用
常用的siege命令举例
# 200个并发对http://www.google.com发送请求100次
01 | siege -c 200 -r 100 http: //www .google.com |
# 在urls.txt中列出所有的网址
01 | siege -c 200 -r 100 -f urls.txt |
# 随机选取urls.txt中列出所有的网址
01 | siege -c 200 -r 100 -f urls.txt -i |
# delay=0,更准确的压力测试,而不是功能测试
01 | siege -c 200 -r 100 -f urls.txt -i -b |
# 指定http请求头 文档类型
01 | siege -H "Content-Type:application/json" -c 200 -r 100 -f urls.txt -i -b |
Siege输出结果说明
Transactions: 总共测试次数
Availability: 成功次数百分比
Elapsed time: 总共耗时多少秒
Data transferred: 总共数据传输
Response time: 等到响应耗时
Transaction rate: 平均每秒处理请求数
Throughput: 吞吐率
Concurrency: 最高并发
Successful transactions: 成功的请求数
Failed transactions: 失败的请求数
Siege使用的一些总结
1,发送post请求时,url格式为:http://www.xxxx.com/ POST p1=v1&p2=v2
2,如果url中含有空格和中文,要先进行url编码,否则siege发送的请求url不准确
注意:
性能优化:图片部分下载,或者通过css去控制图片大小,进行拼图
20个用户,发送3次请求:siege -c 20 -r 3 http://www.tencent.com/
调优之前先用siege做一次基本的并发,siege只支持get请求,不支持post请求
执行结果:
Transactions: 900 hits
Availability: 100.00 %
Elapsed time: 8.81 secs
Data transferred: 12.33 MB
Response time: 0.19 secs
Transaction rate: 102.16 trans/sec
Throughput: 1.40 MB/sec
Concurrency: 19.60
Successful transactions: 900
Failed transactions: 0
Longest transaction: 1.08
Shortest transaction: 0.02
保存执行结果:siege -c 5 -t 1M -f /Users/mac/Desktop/urls.md --log=result.csv
查看结果使用:sz 文件名;直接下载到本地,先安装 lrzsz,brew install lrzsz/sodu apt-get install lrzsz
5. 使用siege 压测启用gzip压缩
gzip颜色就是指服务器在返回请求时候先将请求压缩一下,以减少response的体积,客户端收到response之后会自行解压,这是提升传输速度的一般做法
在请求头中对下面的URL进行加压,不过要使用gzip,在请求头中加入:Accept-Encoding:gzip,就可以告诉服务器返回压缩后的response,具体命令如下:
siege -c 5 -t 1M -f /Users/mac/Desktop/urls.md -H "Accept-Encoding:gzip" --log=result.csv
https://ur.tencent.com/academic
https://ur.tencent.com/cooperation/platform
查看gzip命令: curl -H "Accept-Encoding:gzip" -I http://www.baidu.com
6. siege对移动站点进行压测
原理:服务器根据user-agent这个值确认浏览器是移动端还是桌面版本
通过user-agent伪造 成不同浏览器