jmeter接口测试详解

接口不仅只有正例,还有反例,使用的是CVS的参数化处理,正例和反例仅仅是因为参数不一样

如何接口做参数化处理?

在存放代码目前下新建一个CSV文件,使用N++打开,加上3个参数

 将以上三个参数与值,写在CSV上面,使用豆号隔开,如下图,字段与值是一一对应的

 在 jmeter的这个位置加一个配置元件如下图

 

 

CSV设置里面添加刚才写好的文件,设置好前五个内容即可,如下图

 设置好之后,这个传参的值也要设置成变量的方式传入,这里是全局变量

 业务的断言也需要使用变量的方式去取值如下图

 因为写了四条用例,所以只会执行一次,只执行第一条,那么需要设置一具循环控制器,把接口放在循环控制器里面,设置为4次,如下图

 

执行结果是能看到第一个接口执行了4次如下图

需要必须带请求头的接口

比如百度搜索接口,就是一个必须带请求头的接口

 在 fiddler上面抓包,复制所有请求头下来,因为不知哪个请求头是必须的,所以都复制下来

在添加一个配置元件叫,http信息头管理

把请求头粘过来,就能自动加上了如下图,具体哪个请求头是必须的,可以一个人删除请求一下看会不会报错

 发送请求,在查看结果树里面可以看到请求成功的,可以去打开网页,查看元素对比一下里面的内容,几个关键字

 在没有接口文档,或者不使用 fiddler的情况下,可使用 jmeter录制功能

 添加一个配置元件》》非测试元件》》http代理服务

 

 

 录制端口和录制的位置,需要设置一下,专门建立一个线程做为录制用,,如果8888端口在fiddler使用过了,会被占用,需要在fiddler上把他去掉,不然

 在本机设置代理服务器,录完后,需要把这个本机设置还原不然什么网站都 用不了了

 

 上面录制了一些不需要的内容可以在http代理服务 器设置过滤掉如下图

 录制这么多怎么判断 哪个是自己想要的接口,可以根据请求数据,看下哪个数据是自己请求的

 录制下来后可以直接做为接口测试去执行

jmeter 有很多功能都是限制死的,如果是在项目碰到了一些特殊规则时,比如自定义的加密规则,这种情况下jmter是做不到的,只能做到一些他本一来就有的设定好的一些加密规则,这个时候需要通过BeanShall,这就有两个需求,第一个如何和主键之间交换数据,第二个如何把数据给到主键

1、自定义一个变量,name = 'guohailan',然后可以在BeanShell取得这个变量

获取变量的值:vars.get获取的意思

vars.get('name')

获取之后,打印出来 log_info打印的意思   log_info(vars.get('name'))

  打印结果:guohailan

设置一个变量 , name表示变量名, guohailan表示变量的值,vars.put('name','guohailan')

获取设置到的变量    log_info(vars.get('name'))

 打印结果:guohailan

vars的使用必须在一个线程里面

2、 props变设置量,可全局使用,跨线程组

设置一个全局变量  props.put('name','guohailan')

获取全局变量的值:props.get('name')

3、获取前面一个取样器的返回信息

 获取返回值的code码:prev.getReSponseCode()

获取反值的信息内容 :prev.getRsponseDataAsString()

4、 ctx上下文

获取上下文所有的变量: cts.getProperties()

********jmeter数据库连接与执行,设置好连接池内容

 

新建一个 JDBC,Requst请求,将SQL语句写在里面,可在结果树看到查询的结果

如果想要提取数据库查询的结果如何操作?

可以使用BeanShell提取,代码如下

例如,用名表,需要提取用户名和密码

vars.put("username"),vars.getObject("result").get(0).get("username")

意思是创建一个变量名为username,从 result对象中获取到表中的第1条,也就是下标为0,的表头为username的值,在使用的时候就可以直接使用name变量名获取到对应的值

vars.put("username"),vars.getObject("result").get(0).get("username")

result是怎么来的?看下图

 jmeter写好接口脚本后,也可以打开CMD命令行去运行执行接口用例

打开命令行,执行jmeter的命令:如下

命令行参数:

-n -t  -n非界面方式运行,

-t指定jmx位置  -l 指定生成结果的jtl格式, 生成的这种报告,查看起来比较麻烦,需要打开jmeter,新建线程组,添加查看结果树,往里面添加这个文件才能看到

 -e  生成html报格式, -o 指定html报告所在的文件夹(这个目录必须是空的),在先目录下新建一个空的文件夹

 使用jmter+Ant+Jenkins持续集成

第一步下载Ant,并解压,解压之后,把Ant目录下的bin目录配置在环境变量中,配置之后看下在cmd里面能不能看到版本,如果看到了说明配置成功了

第二步:Ants文件里面有一个 build文件,并将这个文件放在test.jmx ,jmeter接口脚本中的同一个文夹件中

第三步:配置全局文件,在bin目录下有一个 jmeter.prperties文件编辑,加入一行,如下图,这样全局变量就配置好了

 第四步,在文件放在test.jmx ,jmeter接口脚本中文件夹中,下输入cmd 直接执行ant ,他就会执行我们所有的用例,并且生成报告,可以看到一次生成这些报告

 

posted @ 2023-10-10 16:49  藤上小冬瓜  阅读(296)  评论(0编辑  收藏  举报