http://blog.youkuaiyun.com/zhangzuyuanbest/article/details/62046043 https://www.cnblogs.com/nnhy/p/BigData.html SQLite单表4亿订单,大数据测试 http://blog.youkuaiyun.com/zhao9tian/article/details/40346899 JAVA 模拟瞬间高并发 http://book.51cto.com/art/201110/299804.htm Siege学习 http://www.ha97.com/4663.html Web性能压力测试工具之Siege详解 http://blog.youkuaiyun.com/envyfan/article/details/42715779 Jmeter对HTTP请求压力测试、并发测试的简单使用方法 http://blog.youkuaiyun.com/defonds/article/details/40824011 JMeter 压力测试使用函数和 CSV 文件参数化 json 数据 https://www.cnblogs.com/summer-mm/p/7717812.html 使用JMeter进行一次简单的带json数据的post请求测试 |
环境:
- jdk7.0
- tomcat7.0
- sqlite数据库
测试:
fiddle测试同一时间15次读请求(全部成功)
fiddle测试同一时间15次写请求(只有两次成功)
改用Siege测试读操作
并发30,重复10次
siege -c 30 -r 10 -f url.txt
并发30,重复30次----失败
并发30,重复15次
siege -c 30 -r 15 -f url.txt
成功率下降,本应处理30*15=450次请求,实际处理420次请求
当并发30,重复20以上时,会报错
[error] socket: unable to connect sock.c:230: Address family not supported by protocol
换一个测试工具
apache jmeterV3.1官方版
下载地址:http://www.wmzhe.com/soft-39158.html
双击 jmeter.bat 运行
实现测试功能:
压力测试,多线程并发,同时,重复访问,post提交,多个json参数
打开界面
添加线程组:
设置线程并发,间隔时间,重复次数
创建HTTP请求:
鼠标右击该采样器,右键菜单选择 "添加" -> 配置元件 -> HTTP 信息头管理器,然后信息头添加一条名称为 Content-Type,值为 application/json
将 json 数据参数化的两种方式:
方式一: 使用函数将 http json 数据参数化
像其他采样器一样使用函数助手生成一个引用字符串,比如 ${__Random(0,9,random_num_0_9)},它的作用是随机生成 0 - 9 之间的一个数字。random_num_0_9是变量名
然后编辑 Body Data 里的 json 串里需要参数化的地方,使用 ${__Random(0,9,random_num_0_9)} 覆盖需要参数化的部分:
方式二: 使用 CSV Data Set Config 将 json 数据参数化
右键单击 Thread Group,右键菜单选择 "添加" -> 配置元件 -> CSV Data Set Config
添加运行结果分析监听器
结合数据库观察数据