Jmeter学习-入门篇
1、模拟对于服务器、网络或对象模拟巨大的负载
2、通过创建断言的脚本来验证程序是否能返回期望的结果
开源免费、跨平台、支持多协议、小巧、功能强大
不支持IP欺骗、使用JMeter无法验证JS程序,也无法验证页面UI,所以要和Selenium配合来完成Web2.0应用的测试。(接口测试)
ApacheJMeter.jar 图形化界面启动
jmeter.bat windows下命令的启动方式
jmeter.sh的linux的启动方式
restful语法风格的
查 url + get 一般以键值对格式提交数据 状态码:200,单条或多条数据
增 url+post 以键值对或json格式提交数据 状态码:200或201:新增的数据
改 url+put 以键值对或json格式提交数据 状态码:200或201:修改的数据
删 url+delete 一般以键值对格式提交数据 状态码:204,无
JMeter 菜单
测试计划—右键—添加—线程—线程组
线程组—右键—取样器—http请求
查看结果
线程组相关
进程:正在运行的程序
进程:是进程种执行线索
线程组:进程中有许多线程,为了方便管理,可以对线程按照性质分组,分组的结果就是线程组。
ps:三者关系,一个进程可以包含多个线程组,一个线程组可以包含多个线程
并发执行 顺序执行
多个线程同时进行,比如:跑步
顺序执行,比如:排队
(顺序执行、并发执行的确定)
JMeter两个特殊的线程组
setup、teardown线程组
steup永远最先、teardown永远最后
JMeter线程组设置细节
线程数:虚拟用户数,一个虚拟用户占用一个线程或者一个进程。
准备时长:设置的虚拟用户数需要多长时间全部启动。如果线程数为20 ,准备时长为10 ,那么需要10秒钟启动20个线程。也就是每秒钟启动2个线程。
循环次数:每个线程发送请求的次数。如果线程数为20 ,循环次数为100 ,那么每个线程发送100次请求。总请求数为20*100=2000 。如果勾选了“永远”,那么所有线程会一直发送请求,一到选择停止运行脚本。
Http请求默认值
解决重复的http请求设置,方便操作,封装。
http信息头管理器
新增修改实现时提交的数据时json格式的,需要声明提交的数据类型。
参数化
提交的数据量比较大,难道还是一次一次提交嘛?
四种方式实现参数化:
用户定义的变量
csv数据文件设置
用户参数
函数
直连数据库
需要第三方jar包
结果在百度上搜索
断言
结果是否符合预期
响应断言
大小断言
断言持续时间=判断响应时间