jmeter的简单用法
jmeter用来做什么的
1、接口测试
查看接口的返回结果,是否和接口文档一致
2、性能测试
模拟多个用户进行并发,看接口的处理能力
格式:协议://主机地址/路径
http超文本传输协议
https安全超文本传输协议
提交格式application json 与form表单
GET一般用于信息获取,
Post用与信息提交,更安全
GET提交的数据显示在地址栏,不安全:提交的数据量有限制:不重要的数据使用GET
POST 隐式提交数据,更安全,没有数据大小的限制:重要的数据使用POST
请求参数,比如说去登录一个窗口输入账号密码,就是参数
输入的参数条件
一般以字典的形式如{“id”:”1234”,”key”:”123456”}
jmeter的进阶用法
jmeter接口测试和fiddler抓包接口测试的区别
jmeter脱离app端,可以直接测
fiddler开发完之后,去测试,而且还可以看有没有异常操作,还可以去重复发送请求和篡改请求,去看重复发送请求会不会出问题
jmeter怎么去测接口
添加线程组,添加http请求,查看结果树
http请求里输入参数(具体已经实操)注意看请求
注意,结果树里面请求成功了,证明只是接通了,具体还要看响应的数据
正常情况(参数正确,账号密码正确),异常情况(参数错误,账号密码错误),特殊情况(少数据了)
Jmeter接口自动化
一般用于回归测试
单一接口的自动化
主要添加请求的响应值输入对应的响应值是不是一样的
参数化
有时候接口的请求参数值不会固定,可以通过参数化的方式,设置成一个变量
1、用户定义变量
添加→配置元件→用户定义的变量
在用户定义变量里添加数据,再在http请求里用${设置的文件名}引用
2、csv数据文件设置
添加→配置元件→csv
数据要变量进行替换
线程组里的循环次数要勾选永远
保存txt文件里,直接在里面修改
3、用户参数
添加→前置处理器→用户参数
添加用户,添加变量,多少个数就多少个线程数
4、在计数器理设置参数
添加→配置元件→计数器
填好参数之后设置引用名
在http请求里用${设置好的引用名}
5、在函数助手设置参数
直接打开函数助手
参数传递
添加→后置处理器→正向表达式提取器
响应数据的结果要做下一个结果的参数
1、先用正则表达式(.*?)提取请求的响应数据,然后设置引用名
2、然后设置对应的参数在http请求用${设置好的引用名}进行引用
性能测试
在测试环境下做过压力测试,性能测试,只在性能测试中有效,做过这个东西,明白这个原理。
不确定因素:网络带宽
性能测试步骤
1.先添加线程组,再添加http请求,最后添加聚合报告
重要的数据:响应时间,错误率,吞吐量
错误率:有没有太高,没有报错就是百分之百
吞吐量:每秒完成的请求数,每秒响应了多少个请求
响应时间:对请求做出响应所需要的时间
加50个线程组先压三分钟,看吞吐量,响应时间,错误率等等一直加线程组,直到吞吐量达到一个瓶颈,就是他的测试环境单接口的性能指标,
Fiddler
篡改请求
先打断点,然后重新发送请求,然后就可以任意修改数据了
什么是mock数据:Mock数据就是用一些其他的返回值替代掉原版的返回
断点点一次就是拦截发送的请求
断点点两次就是拦截回来的请求
第一个是看参数,第二个是看返回请求
Fidder定位问题是前端还是后端
1.通过抓包看接口是否正常,如没有调用接口或者调用的参数错误则是前端问题
2.如果接口不通,如404,502,或者接口通但是返回内容错误,比如排行榜本应该返回排行榜数据,却返回了null,则是后端问题。
3.如果接口返回信息都正确,且网络无问题,则是前端问题
-
#:这是Fiddler生成的ID(最好是按顺序排列)。
-
Result:响应的状态码。
-
Protocol:使用的协议HTTP或者HTTPS。
-
Host:服务器的主机名和端口号。
-
URL:URL的路径。
-
Body:HTTP响应中包含的字节数。
-
Caching:跟缓存相关的字段的值。
-
Content-Type:响应中Content-Type的值。
-
Process:对应本地Windows的进程。
-
Comments: 备注信息
get和post请求的区别?
1、get请求是明文传输,请求参数会跟在url后面,以问号分割url和传输数据,参数之间用&相连,post请求是把提交的数据放到请求体的body中,用户不能直接看到,相对而言安全点
2、get对传输的数据长度有限制,post没限制
3、get请求可以被浏览器自动缓存,post不能缓存
4、get请求在浏览器上前进/后退是无害的,post请求一旦回退则需要重新提交表单
5、get请求会在发送过程中产生一个tcp数据包,post在提交过程中会产生两个tcp数据包(据说有的浏览器只产生一个包)--这点在面试的时候慎用,不熟悉的东西最好不要说,免得被盯着这个深问
6、get请求可以添加到浏览器书签,post请求不能
7、对参数的数据类型,GET只接受ASCII码,而POST没有限制