Jmeter:
接口测试:
接口的基本请求
第一步打开Jmeter时,可以新建线程组
第二步,新建的线程租里可以配置虚拟用户数,加载完虚拟用户数所需要的时间,以及线程循环次数
第三步,在线程组里新建取样器HTTP请求第四步在HTTP请求里填写,接口请求协议,接口请求地址,接口请求方式,接口路径,接口参数信息,注意写接口请求信息的时候,中间不要有空格,不然会报错
第一次填路径的时候,路径后面有空格,请求一直报错,提示Response code:404,把路径末尾后的空格取消后,请求成功了
第五步监视器里新建查看结果树,
第六步,对接口发出请求,在监听器里查看接口的请求数据以及响应数据
接口请求的完善优化
一、数据驱动
对同一个接口的要传不同的参数信息,可以通过数据驱动(DDT)的方式来实现
第一步需要准备一份需要传参的数据信息
第二步在接口的请求的配置元件里新建CSV数据设置
第三步在CSV数据设置里选择参数数据所在的路径,文件编码选择utf-8,变量里面根据参数信息里有几列数据,就填写几个变量,如果参数信息里有表头的话,忽略首行要选择True
第四步,参数调用,根据CSV设置里写的变量名来调用,调用时通过${变量名}的格式来调用
第五步,参数信息里有几行数据,线程组的次数最少就填几次,然后接口请求
数据驱动遇到的问题:
1、数据文件的编码格式不正确,数据文件不是UTF-8的编码格式,导致请求失败
2、数据文件里的数据信息格式不正确,建议用csv格式的文件
3、数据文件里包含表头,但是CSV配置里没有跳过首行
4、其他线程或线程组调用数据失败时,可能是csv配置里的共享范围没有选所有现场
二、接口的请求默认值
同一个服务器ip有多个接口请求,可以通过新建请求默认值来只用在请求默认值中填写服务器名称就行,不用在同一个服务器的其他接口请求内重复填写同一个服务器名称
三、请求头管理器和用户自定义变量
接口文档内要求传请求头参数,可以新建请求头管理器里添加信息头信息
如果接口测试需求,涉及到变量比较多,可以在用户自定义变量里对变量进行管理,描述每一个变量的作用范围
四、后置处理器
后置处理器的作用是当前接口发出请求后的响应数据里有一些数据需要在下一个接口的请求时的调用,需要在当前接口新建一个后置处理器,后置处理器一般用json提取器或正则表达式提取器
Json提取器
json提取器的使用,首先看所需提取的数据在接口响应数据里的哪个位置,通过jsonpath的方法获取所需要的值,例如{“学校”:“清华”,“data”:{"院系":“计算机”,“专业":“软件”},""},中需要获取院系的信息,格式就是$.data.院系,$就是固定的,{就是.号
需要resultcode的值,格式就是$error_code并填写在Json提取器里的JSONPath 里面,并对提取到数据设置变量error_code,
正则表达式提取器
正则表达式提取里,设置变量名称,模板是固定的$1$,通过设置的变量来获取值
可以根据所要获取参数所在的位置来选择检查的响应字段来提升请求时间
五、 接口的断言
接口请求的预期结果和实际结果是否一致,需要通过断言来实现,Jmeter的断言主要是JSon断言和响应断言2种
Json断言
通过Jsonpath语法获取所需断言的参数,添加参数的预期结果首先需要先勾选Addtionally assert value,然后需要在ExpectedValue里添加预期的结果,预期结果需要在不同情况下有不同对应的值,这个可以在数据驱动的数据里先写好,可以通过设置在csv里的变量来获取参数的预期结果
响应断言
响应断言涉及的字段很广泛,可以通过测试字段和匹配规则来设置预期结果的不同信息
备注:可以在监听里新建一个断言结果树,然后在查看如果不清楚响应断言的具体怎么使用,可以现在断言里填写预期结果,通过断言结果树的提示来完善响应断言,received是实际的,comparison是预期的
六、生成报告
第一步需要确认JMX文件路径
第二步在文件夹的路径下输入cmd并运行
第三步输入指令生产报告
jmeter -n -t apitest.jmx -l apitest.jtl -e -o apitestreport.html
第四步就可以在项目的路径里找到生成的报告信息