进行接口测试前,就先需要一份接口文档
接口文档至少包括:
1、接口说明
2、调用url
3、请求方法(get\post)
4、请求参数、参数类型、请求参数说明
5、返回参数说明
有了接口文档后,那么我们就要根据接口文档来拼接参数调用接口,那么怎么调用呢?
接口请求报文拼接
1、url?param=value¶m2=value
这种是最简单的一种,问号前面是请求url,后面是请求的参数名和参数值,多个参数用&来连接
https://api.douban.com/v2/book/search?q=某某
2、还有一种就是入参是json串的,那就不能拼接参数了,需要借助工具来完成比如postman
下面就来简单说说如何使用postman进行http接口测试~
Postman-http接口测试
1、GET请求类型
首先先New一个tab,然后根据接口文档选择请求方式(这里先来一个GET请求),然后输入请求URL(get请求它的请求数据是在放在url里面的,所以直接把参数也接到后面),最后点击Send,然后下面显示返回结果
返回结果:
2、POST请求类型
该请求为post类型,因此请求参数是放在body里面的,同时要求入参是json类型,所以在Headers里添加一条类型,然后在Body中选择JOSN类型,输入参数,最后点击Send,返回结果
返回结果:
若接口有权限验证,需要admin用户才可以做操作,需要添加cookie
cookie中key为登录的用户名,value从登录接口中获取,登陆成功之后会返回sign
在Headers中增加一个Cookie即可
另外再说一个上传文件的接口:
选择File类型即可选择本地文件进行上传
Jmeter-http接口测试
首先新建一个线程组,然后添加一个HTTP请求,根据接口文档,选择请求方式,输入ip、路径、参数等,再在线程组中添加一个察看结果树和聚合报告,可以在执行完成后查看结果
这里我已将ip和所用到的参数进行了参数化处理,这样方便修改多个脚本的ip地址,并且可以增加脚本执行的次数,那么如何进行参数化呢,接下来就简单介绍一下如何参数化
第一步:右击线程组添加“用户定义的变量”
这里将IP做一个定义,名称可随意取,这里我简单取为ip,然后值输入ip地址,这样就完成了ip参数化了!是不是很easy!!!之后就直接用${ip}来代替长长的ip了~
然后,再讲一下用户名和密码的参数方法,其实也很简单,先添加一个CSV Data Set Config
如果参数化文件放在Jmeter的bin目录下,那么Filename可以直接写文件名,如对应多个参数,则用逗号隔开,之后就可以用${username}和${pwd}进行取值了
继续回到主题,下面列举几种情况的请求:
①最简单的get请求
②最简单的post请求
③入参是json类型的post请求
这里再延伸说一下另一个功能-随机函数
上述生成的函数作用是可以在1000-9999之间随机生成一个四位数字,用法和参数化一样,将生成后的函数字符串复制粘贴
④接口有权限验证,需要admin用户才可以做操作,需要添加cookie
cookie中key为登录的用户名,value从登录接口中获取,登陆成功之后会返回sign
在HTTP请求下添加一个HTTP Cookie管理器
然后在Cookie管理器中输入Cookie信息
⑤需要添加header信息的get请求
在HTTP请求下添加一个HTTP信息头管理器
然后在信息头管理器中输入header信息
⑥文件上传
⑦前后两个请求存在依赖关系
那么要先从前一个请求的结果中提取出所需要的信息,在前一个请求中添加一个JSON Path Extractor
这里是需要登录后的sign,所以就将登录请求的结果中的sign提取出来,定义为sign方便后面请求使用
接下来就是调用这个sign了
在第二个请求中,添加一个HTTP Cookie管理器
在这里也简单的延伸说一下如何使用Jmeter对mysql数据库进行增删改查操作
首先在测试计划最下方添加选中mysql对应的jar包!!!(oracle对应的不同jar包可以网上自行下载)
然后添加一个JDBC Connection Configuration
填写数据库信息(将打码的地方替换成自己的mysql数据库地址,数据库名、密码即可)
最后再添加一个JDBC Request 数据库请求
这里有个重点就是 Query Type一定要选择Callable Statement ,否则无法执行insert、delete、update语句~
以上总结有很多不足之处~ 欢迎大家留言补充~