基础操作手册:Windows
Mr丶菜鸟
1、下载jmeter ,jmeter是一款基于java的开源工具,可以测试接口和性能,需要jdk环境,下载jmeter地址:https://jmeter.apache.org/download_jmeter.cgi
下载安装之后进行解压,启动文件在jmeter文件包中bin目录下,jmeter.bat是启动文件
2、开始调用http请求
测试地址:http://httpbin.org/
新建一个线程组
右键线程组,添加一个HTTP请求,用于发送请求,并把请求地址放进去,路径为请求地址的路径 ,不明白的可以把测试地址打开看下!
右键HTTP请求,添加一个查看结果树,查看请求后的结果 ,并点击文件,保存本次测试
添加后点击上面开始执行测试,向右绿色三角,得出测试结果,Text处多了一个请求,并且为绿色代表成功,点击它,查看取样器结果,Response code(响应码)为200,还可以看请求数据和响应数据
Post和get请求有点区别,重新复制了一份,把请求名字后面加上请求类型,post请求成功后,大家可以对比看下 ,当然了,不是现在看 ,加了参数之后再看,其他方法请求类似
设置断言,其他自己大家扩充,响应断言中模式匹配规则介绍下:
包括:响应内容包括需要匹配的内容代表响应成功,支持正则
匹配:响应内容要完全匹配需要匹配的内容即代表响应成功,大小写不敏感,支持正则
相等:响应内容要完全等于需要匹配的内容才代表成功,大小写敏感,需要匹配的内容是字符串正则
字符串:返回结果包含制定结果的字串,不支持正则
否:不进行匹配
咱们测试输入的断言是包含这个字符串https://httpbin.org/get ,结果肯定是成功的,如果你在后面加个1 ,那就是失败了,因为请求的返回结果不包含,大家可以自己试下
参数化,在HTTP请求 参数处增加参数值,进行请求
分别为get和post请求添加上参数化,进行请求 ,在对比2个请求中的参数区别
Get第二种请求,参数包含在路径中,字符要小写,如果多个参数,以&区分
Post第二种请求 json格式
在消息体数据里写json格式,一定要把参数删除掉,不然不能写 ,get第二种方法也是一样,不删会报错
Post用json格式请求时,要增加一个HTTP信息头管理器,指定格式,以防报错,不增加也有可能不报错
用户变量&函数变量
Jmeter支持:自定义变量、函数生成变量、BeanShell变量、数据文件变量
HTTP请求引用参数,和postman不一样,参数格式为${参数名}:
用户参数:是对应当前请求的线程组下的全部请求,需要注意
设置多个参数 ,并且把每次迭代更新一次勾上 。参数值变成2组,也需要再线程组的地方,把线程数改成2,说明我要跑2次,然后再查看一下结果树,会调用2次get请求,2组参数
查看结果数:
Jmeter自带一个函数生成器,Tools-函数助手对话框 。大家百度了解下,我现在选择的是随机生成一个数字 ,1-100范围 ,生成了一个函数
把这个随机生成数字的函数放在密码参数的位置,进行请求,在结果树就会发现不同的参数
BeanShell变量 ,是一种java语言的脚本语言,包含一些语法和脚本命令 ,有兴趣的可以多了解一下 ,主要是写java脚本处理请求
常用的就是vars.put 添加变量 log.info 添加日志
请求中参数名和beanshell里一样,参数名和值用逗号分隔,都是小写
添加结果数,进行访问 ,日志在菜单栏 选项里查看
创建一个新的HTTP请求,采用csv变量来请求
Csv文件:
参数之间逗号隔离
CSV数据文件变量&参数化,推荐只用编译软件,nodepad或其他,文件编码格式为utf-8
然后添加结果树,进行请求
正则匹配,获取上一个接口的返回值作为下一个接口的请求值
因为用户参数是整个线程组都可以优先使用的,所以大家可以把用户参数里的参数名改掉,或者删掉用户参数
正则后期匹配需要,所以另外一个参数改名为num,更好辨认
正则表达式提取器,引用名称用于下一个接口调用的参数名
正则表达式自己网上可以看看,()代表提取的内容,.代表匹配任何字符串,+一次或者多次 ,?找到第一个匹配项就停止
模板的话代表正则取到的有几个参数 ,写1就把第一个参数复制给名称
匹配数据,0代表随机 ,1代表全部
缺省值,如果参数没有取到值,就默认给一个值让他取
新建一个HTTP请求,参数用正则匹配的参数,再创建结果树,进行调用
用例数据分离。当请求数据太多的时候,页面不是太好管理,所以拿csv进行管理
重新创建一个线程组 ,我已经创建完了,一个线程组,取名为数据驱动,在添加一个循环控制器,写几条用例就循环几次 ,我4条用例
循环次数如果勾选,就会成为无限循环
创建csv数据文件设置,因为文件有标头,所以首行忽略,选择True
创建一个if控制器,用来分离用例,如果接口太多,会有不同请求,或者不同名,需要分类
下面是条件,本次测试的条件为:接口类型参数 ,为GET
创建请求 ,结果树 ,响应看情况创建 。请求中的名称和路径地址,用的都是csv中的参数化
*******请大家尊重原创,如要转载,请注明出处:转载自:https://www.cnblogs.com/cainiaoxiansheng/,谢谢!!*******
*******有任何疑问,欢迎加入初级软件测试交流群:675678830。*******