一、 接口测试分类
内部接口:测试被测系统各个子模块之间的接口,或者被测系统提供给内部系统使用的接口.
外部接口:
- 被测系统调用外部的接口.
- 系统对外提供的接口.
接口测试重点:检查接口参数传递的正确性,接口功能的正确性,输出结果的正确性,以及对各种异常情况的容错处理,以及权限控制,分页,调用次数的限制。
二、目前接口架构设计
1、基于SOAP架构,基于XML规范,基于WebSerice协议。特点:接口地址?wsdl结尾。
2、基于RPC架构,基于dubbo协议,thrift协议,SpringCloud微服务。
3、基于RestFul架构,基于json规范,基于http协议。
’ RestFul规则:
接口地址:http://127.0.0.1/user get(查询),post(添加),put(修改),delete(删除)
json数据格式:两种类型
键值对:{key:value}
数组:[arry1,arry2]
三、Jmeter常用组件
1、测试计划:起点。所有组件的容器。
2、线程组:代表一定数量的用户。
3、取样器 :向服务器发送请求的最小单元。
4、逻辑控制器:结合取样器实现一些复杂的逻辑。
5、前置处理器:在请求之前的工作。
6、后置处理器:在请求之后的工作。
7、断言:用于判断请求是否成功。
8、定时器:负责在请求之间的延迟间隔。ex:固定,高斯,随机
9、配置文件:配置信息
10、监听器:负责收集结果。
顺序:
测试计划>线程组>配置元件>前置处理器>定时器>取样器>后置处理器>断言>监听器
作用域:
必须组件:测试计划,线程组,取样器
辅助组件:除了必须组件外
辅助组件作用于父组件,同级组件,以及同级组件下的所有子组件。
目录
backups:脚本备注目录,格式JMX
bin目录:存放Jmeter的启动脚本,配置文件,模块文件。
jmeter.bat启动jmeter
jmeter.properties核心配置文件
dosc:离线帮助文档
extras:存放与第三方的集成构建文件。集成Ant.Jenkins
lib目录:存放jar包
licence:许可证文件
四、Jmeter执行接口测试
1、拿到api接口文档(Fiddler),熟悉接口业务,接口地址,鉴权方式,入参,出参,错误码。
2、编写接口测试用例
测试思路:
正例:输入正常入参,查看接口成功返回。
反例:
鉴权:空,错误,鉴权过期,鉴权次数限制......
参数:空,类型错误,长度错误,错误码的覆盖。
其他:黑名单,分页。
3、使用接口测试工具执行。
4、Jmeter+Ant+Git+Jenkins实现持续集成输出接口测试报告,通过电子邮件发送。
五、token cookie session
鉴权(鉴定用户是否有访问接口的权限)
一、cookie:第一次访问服务器时,自动生成cookie,发送给客户端,客户端保存cookie。
第二次HTTP请求都自动带上数据给服务器(存储在浏览器的数据_把session放入cookie中送到客户端,cookie跟随HTTP的每个请求发送
二、session:服务器生成sessionid,通过cookie返回给客户端,浏览器访问服务器_诞生并保存在服务器(客户端和服务器的sessionid对比,相同为同一用户。
若一方session丢失,则要重新登录
三、token:登录后在服务器token生成,保存在浏览器,可以放在cookie/storage中,之后的所有请求都要在参数/请求头中带上token,然后和服务器的token鉴权(token执行一次 变更一次
bearer:token
JWT:json web token
相同点:用于鉴权,由服务器生成。
不同点:
1、保存位置不同:cookie保存在服务器,session保存在服务器内存,token保存在服务器数据库。
2、安全级别不同:cookie不安全。
3、cookie不消耗服务器资源,session消耗服务器资源。
4、生成方式不同。
Cookie:(Cookie信息,客户端发送给服务器的Cookie,从第1-N次)
Set-Cookie:(服务器发送给客户端的Cookie,只在第一次请求的时候)
cookie和token很有可能同时存在鉴权。