工具对比:
谷歌插件:postman常用来做接口测试,(我下载时提示需要google账号,注册失败了),
火狐插件:RESTClient, 接口测试,缺点是当保存的链接多了,不方便查找
jmeter常用来做压力测试load .stress test
这两天重点看了下jmeter的介绍和使用:
1jmeter是apache的开源项目,纯java,要安装就要先装java才行
2 关于操作录制recording,自动获取到jmsx脚本(这个是jmeter测试运行的脚本),有2种方式:
2.1 代理方式:设置http请求默认值---》代理服务器---》浏览器设置 我改为调用本地接口再测试,ie测百度提示站点不安全
2.2 badboy工具执行,然后导出jmx文件,再在jmeter中打开这个文件
3 关于乱码的处理:
1设置浏览器---火狐---设置---编码 其他浏览器的没找到
2 设置encoding jmeter gui可视化设置
3 增加BeanShell post processor, 调函数方法,即脚本代码方式设置 prev.setDataEncoding("UTF-8");
4 http请求时,设置编码utf-8
5 bin/jmeter.properties文件里,设置sampleresult.default.encoding=UTF-8
这些似乎只是针对,传参时的参数值的,对于上传文件的中文文件名是不起作用的!!
4 关于登录后,下一个个请求不能获取登录信息, 有一个选项为 跟随重定向
5 jmeter 涉及的内容很多,可以做日志打印设置log4j, 可以将脚本导入导出jmx,可以把测试报告jtl 生成可视化html
可以多样测试:http,jdbc,ftp
测试功能角度: 接口功能测试,压力测试 (性能测试)
6官网学习 https://jmeter.apache.org/usermanual/index.html#build-test-plan
7jmeter的组成: 取样器(测试脚本)---线程组(模拟多场景)----监听器(生成测试报告)
8 和它功能相似的工具有:loadrunner, 只听过没用过
9 基础回顾:
http协议响应码(区分于接口返回状态码),它只代表本次请求响应是否成功,和实际是否返回状态成功是两码事
1xx 服务器接口到请求,并继续处理
2xx 收到请求并返回响应成功
3xx 收到请求,但响应还要继续,转发给其他人处理
4xx 客户端错误,发送请求不符合要求
5xx 服务器错误,正确接收到了请求,但服务器处理过程中出错了
10 关于jmeter 线程组的3个设置项: x个线程,y 秒实现,z次循环 : 要在y秒内实现触发x个线程执行,上面这个过程执行z次
11 关于jmeter的安装,从官网下载zip包解压,bin目录下有多个启动文件,sh为linux,mac所用,bat为windows所用
执行jmeter.bat则开启客户端,此时也是脚本执行,
注意:gui方式,占用内存多,在多并发执行时会有问题,所以在压力测试时建议使用cli方式
注意:在做性能测试时,不建议打开查看结果树,只有在做功能验证时才打开,因为他的存在也会消耗资源
12 关于配置:bin下有多个配置文件,关于配置又分为多类:
sys 系统配置 属性配置 用户配置
jmeter配置 -J, java配置 -D
13 关于模板template,在bin目录下,有一个template的目录,这里存放了几个模板文件,主要是jmx文件,可直接打开,作为标准化的一个测试脚本而存在,本质上和自己录制的jmx文件导入是一个意思
14 关于性能测试,我们关注的点有哪些:
cpu消耗
io吞吐量
内存
ttl 平均响应时间 2/5/10原则,2s是比较好的一个响应,5s勉强接受,10s果断拒绝
在做网站时,要在一定的访问量评估下,去对网站做整体的性能测试,不要出现像12306那样预料之外的高访问量下系统崩溃的情况,前车之鉴,在产品设计之初,就要做好充足考量。
15 jemter测试时,如何动态输入变量: 以下3种方式,添加配置元件,或者使用函数助手
17关联的概念: 上个请求的某个值,会在当前请求种用到
正则表达式,提取值,并增加一个引用名称
18 在用到最起码多线程并发访问时,练习下使用这个工具,另外纯功能测试,还是试着安装postman,现在接口太多了,急需一个统一管理的工具,最起码方便查找
19 查看结果树:
timeStamp, elapsed, label, responseCode,responseMessage,threadName,dataType,success,failureMessage,bytes,sentBytes,grpThreads,allThreads,URL, Latency,IdleTime,Connect
1581913222846, 19, HTTP请求, 200, OK, 线程组1-1, text, true, , 2497, 117, 1, 1, http://www.baidu.com/, 19, 0, 7