Jmeter接口模版说明
此接口模板,采用了csv配置文件和“关键字驱动框架”相结合的方式。根据实际业务需求,在jmeter中添加http请求,然后把各种参数信息与预想结果,通过csv文件传入,进行快速校验。
以“掌门发布”的几个http请求做了sample,以下做相关的简单说明。
注意:“关键字驱动框架”可以参看Jmeter知识点中的文档说明。
一、配置文件
CsvFile目录下的两个配置文件:“token.csv” 和“case.csv”。
注意:
(1)Jmeter只能读取utf-8格式的csv文件。
(2)可新建一个纯文本的csv文件,可用excel文件打开进行编辑,保存后,需要把该csv文件转成“UTF-8”格式。
1.token.csv文件
-------------------------------------------------------------------------------
格式内容:account,token
-------------------------------------------------------------------------------
格式字段说明:
(1)account:账户
(2)token:账户的token信息
注意:在此文件中,两个字段内容用“,”分割。
文件内容如下图所示:
Jmeter中需要做如下设置,才能读取到csv文件中的字段内容。
(1)文件名:建议用相对路径,否则换了一个路径就读取失败了。(另外,不管在什么系统下请用“/”作为路径分割符,可保证在任何环境中都能读取正常。)
(2)文件编码:utf-8(建议使用)
(3)变量名称:与csv文件对应的字段名称(请用英文或者英文+数字字符)
(4)忽略首行:True:不读取首行;False:从首行开始读取。如果csv文件的首行是一些字段名称或者描述信息,不需要作为参数读入时,需选择True。
(5)分隔符:csv文件中,字段内容之间使用的间隔符。(默认是逗号,可以自行选择合适的分隔符)
(6)是否允许带引号?:True:文件可带有引号字符;False:文件中没有引号字符。
(7)遇到文件结束符再次循环:True:即使到文件末尾,重新从头开始读取,不停循环。False:到文件末尾就不再循环。
(8)遇到文件结束符停止线程:True:到文件末尾,线程停止。False:到文件末尾,不停止线程。
2.case.csv文件
-------------------------------------------------------------------------------
格式内容:caseId,casename,action,params,results
-------------------------------------------------------------------------------
格式字段说明:
(1)caseId:case编号
(2)casename:case名称
(3)action:对应jmeter中要执行的方法名
(4)params:参数信息
---------------------------------------------------------------
格式:字段名1=字段值1&字段名2=字段值2
---------------------------------------------------------------
如下图:
(5)results:响应结果校验信息
---------------------------------------------------------------
格式:字段名1=预想值1&字段名2=预想值2
---------------------------------------------------------------
如下图:
Jmeter中需要做如下设置,才能循环读取到csv文件中的字段内容。
二、action设置
1、在“关键字驱动框架”中,在TestFragment下的“Switch控制器”中设置“Switch Value”为“${action}”,将通过csv文件传入action值。
注意:上述只需一次设置。
2、在上述的“Switch Controller”下,添加一个新的“Switch Controller”,设置其名称为action对应的值。比如,csv文件中action的值为“loadSurvey”,那么设置名称为“loadSurvey”
3、然后再下方添加http请求。
三、http请求
1、Get请求
(1)参数值设置:
如下图所示,
- csv文件信息:
- params列需要添加所需参数的信息(不同参数之间用“&”分割,key与value之间用“=”分割)
- result列为预想的结果信息(不同的校验内容之间用“&”分割,key与value之间用“=”分割)
-
参数化的请求信息
在参数一栏添加字段名(code),其值为csv文件中获取的code值,用${code}引用。
注意:也可以直接在url后面拼接,比如”/api/ncov/survey/loadSurvey?code=${code}”
(2)结果校验:
在每个http请求下放置一份如下图所示的“返回结果检验(共通)”,通过其可以对“预想结果”和“实际值”做比较。(请确认当前路径下的Comm目录中是否有校验用的java文件。)
2、Post请求
(1)参数值设置:
如下图所示,
- csv文件信息:
- params列需要添加所需参数的信息(不同参数之间用“&”分割,key与value之间用“=”分割)
- result列为预想的结果信息(不同的校验内容之间用“&”分割,key与value之间用“=”分割)
- 消息体数据(body)的设置
在“消息体数据”一栏中,编写body信息,并引用csv中的变量值(或者上下文的变量值)。
(2)结果校验:
结果校验同get请求。
3、文件上传的请求
与上述post请求不同的是,文件信息不写在body中,而是写在“文件上传”一栏中,如下图设置。但必须勾选“对POST使用multipart / form-data”。
4、获取请求结果
一个请求执行完成后,可能需要从其返回的响应文本中提取信息。
(1)jp@gc - JSON/YAML Path Extractor提取器
用JSONPath 表达式来提取。当然还有其他的json提取器,也可以使用。
注意:
(1)该提取器的使用需先安装JSON Path Extractor插件。
(2)JSON方式的提取,会打乱提取内容的原有顺序,其会重新按照ASCII码顺序排列。
(2)正则表达式提取器
是通过正则表达式的方式提取。(当使用JSON提取会打乱顺序时,可以使用正则表达式提取器)。