先找到开发拿到接口文档,然后进行评审。

接口文档评审的内容:接口的定义、接口的url、请求方法、编码类型、参数、选填/必填、参数的类型、响应码、响应的信息、接口的依赖关系等,然后根据文档编写测试用例,测试用例需要考虑是否存在逻辑依赖、根据参数的类型、长度、选填必填等。

编写完测试用例我们使用jmeter进行测试,在测试计划下添加线程组、http请求、信息头管理器查看结果树等组件,点击运行,在结果树里查看返回的结果是否符合测试用例的预期结果。

例如我之前做过一个后台添加会员的接口:接口名称:添加会员,路径;add member,请求方法:post,请求类型,json格式,传参有,username、password、name、phone、sex、member_type,参数的类型string,必填项、参数说明,还有请求返回的示例和状态码,比如

000代表成功、001代表未输入密码、002代表未输入昵称、返回信息 message、添加会员成功等等。

接下来在jmeter里添加线程组,下设http请求、信息头管理器、察看结果树组件,根据需要,还可以添加响应断言组件,对返回的信息进行断言,例如返回的信息有添加成功等字段,就对这个字段进行断言,运行之后查看断言的结果是否成功。

如果接口出现问题我们会从以下几个方面进行定位

1、查看服务器是否开启、防火墙有没有关闭

2、查看自己的路径、方法、请求头、参数是否填写正确

3、查看服务器的状态码、开发自定义的状态码、返回的信息

4、还要核对一下数据库的数据信息

5、查看日志:cat日志名grep“关键字”(关键字:error、用户名或者手机号)
我们还有用到csv参数化,jmeter的参数化有3种:
1、用户自定义变量

2、用户参数

3、csv参数化

公司做接口测试,需要用到多个参数值去进行验证的时 候,会用到CSV参数化。比如一个搜索的接口,我要对它的入参设置多种场景,比如参数的必填和选填、参数的类型(int、string)、参数的长度、多参、重参等,我会创建一个csv格式的文档,把参数的多种场景添加进去,然后打开jmeter,添加线程组、http请求、信息头管理器、查看结果树和csv组件,然后在CSV组件里面设置要应用的文档路径、参数的变量名、编码格式等,线程组里添加相对应参数的循环次数,如果需要断言的话,也可以把断言添加到文档里面,点击运查看运行结果是否和预期结果一致,这就是csv参数化的过程。

对于有依赖关系的接口,我们会使用边界提取器、json提取器、正则提取器,比如我们的下单接口或者添加购物车接口,需要获取登录接口返回的 cookie 或者 token来请求,我会先把登录接口添加好,在登录接口下面添加一个正则提取器来提取登录的 cookie,提取变量再引用。

具体操作是,在正则提取器里面添加变量名blcookie_name,正则表达式:cookie:(.*?)【.是匹配除/n以外的任何字符,是匹配0次或者多次,?是找到第一个匹配项结束】模板S1S(中间的数字表示匹配的第几个值给变量),匹配数字(如果精确匹配到一个结果,填写1就可以了),再添加一个调试取样器,来查看自己是否提取成功,如果提取成功就可以在下单的接口里引用。
关于 cookie 引用还有一个更简单的方法,先添加一个 http cookie 管理器,再把登录接口、
下单接口都添加好,直接运行。请求过程中会把登录的 cookie 自动存储到 cookie 管理器里面,
下单接口运行会自动调用,这是我们接口测试的流程。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐