1.基础知识
1.接口测试原理
接口测试的原理就是模拟客户端向服务器发送请求,服务器接收请求报文后对相应的报文做处理并向客户端返回应答,客户端接收应答的过程。
2.接口测试点及用例设计方法
接口测试采用的方法其实与黑盒测试一致的,甚至可以把接口测试理解为没有界面的功能测试。只不过接口测试的关注点主要在请求和响应上。另外,还包括接口的安全,接口的性能等。常用的用例设计有等价类,边界值法等。
一般测试用例的设计要从单接口参数的校验到整个业务功能点的验证,还可以验证一些安全性和异常情况。
3.接口测试要点
- 检查接口返回的数据是否与预期结果一致。
- 接口测试结果检查通常需要通过SQL语句从数据库内进行查询确认。
- 检查接口的容错性,假如传递数据的类型错误时是否可以处理。
- 接口参数的边界值,例如传递的参数足够大或为负数时,接口是否可以正常处理。
- 接口的性能,http请求接口大多与后端执行的SQL语句性能,算法等比较相关。
- 接口的安全性,外部调用的接口尤为重要,一般每个接口都要进行鉴权验证。
4.常见HTTP状态码
状态码 | 含义 |
---|---|
1** | 临时响应并需要请求者继续执行操作 |
2** | 请求成功。操作被成功接收并处理 |
3** | 重定向代码,用于已经移动的文件并且在头信息中指定新的地址信息 |
4** | 客户端错误,请求包含语法错误或者无法完成请求 |
5** | 服务器错误,服务器在处理请求的过程中发生错误 |
比如:
200 服务器成功处理请求
404 未找到资源
410 找到资源,但现在已不存在
500 内部服务器错误
503 服务器目前无法为请求提高服务
302 临时重定向
304 客户端的缓存资源时最新的,要客户端使用缓存
5.HTTP基础知识
-
DNS:Domain Name Server 域名服务器
http:// www.baidu.com: 80/ adv_search? w=py&order=false# tag -
HTTP报文格式分为两种
请求报文:请求行,请求头部,回车换行,消息体
响应报文:状态行,响应头部,回车换行,消息体
HTTP由请求和响应构成,是一个标准的客户端服务器模型(B/S架构)。HTTP协议永远都是客户端发起请求,服务器回送响应。B/S架构又叫浏览器/服务器模型,严格意义上说,这个B不仅仅只是浏览器,凡是能够发生HTTP请求的对象或者工具,都可以叫做客户端。
- HTTP请求组成部分
URL地址,请求参数(可选),请求头,请求体(仅限POST请求)
对于响应内容部分,主要关注两个点:响应状态码,响应内容
-
HTTP工作过程
- 浏览器输入
- dns域名解析:域名与IP映射(第一次访问去DNS找对应IP,不是第一次访问则本机存有IP)
- 建立tcp连接(三次握手)
- 发送http request:请求信息
- web服务器接收请求
- 应用服务器处理业务逻辑
- 关闭tcp连接:请求响应完成。如果浏览器在其头部信息中加入了connection:keep-alive,则tcp连接将任然保持打开状态。
- 浏览器:渲染响应页面
-
Get和Post
Get:从服务器端获取资源或数据
Post:向服务器端提交数据
Get和Post的区别:
1)Get请求一般用于向服务器请求获取一个资源,没有副作用,一般会在客户端做缓存。Post请求一般用于向服务器提交数据并让其去完成一件事,所以这个操作是有副作用的,不会在客户端做缓存,
2)Get请求发送数据的时候,一般会将请求数据放在url字符串中发送给服务器端,所以从安全性角度来看相对没有Post请求安全性搞,所以get请求一般不会用于比较隐私数据的传输。而Post请求时将请求数据放在请求体body里面,所以一般用于表单数据,登录数据等数据的传输。
6.接口自动化测试工具
- Jmeter
见我另外一篇博文jmeter学习 - Apifox
接口自动化测试比较好用的工具。见下文第5大点 - postman
见我另外一篇博文接口自动化实战-postman
7.token
-
cookie
存在于客户端,由服务器端通过set.cookie方法来进行设置。 -
session
存在于服务器端的内存中,主要用于和cookie一起来验证客户端的登录状态。 -
token
token是服务器端生成的一串字符串,用作于客户端进行请求的一个令牌。
token运行的原理:
(1)客户端第一次登录成功时,由服务器端生成,并保存于服务器端的数据库中,服务器端再将token值返回给客户端。
(2)客户端拿到token值之后,会进行保存(保存位置由服务器端指定)。
(3)后面客户端发送请求时,会将token值附带在请求参数中发送给服务器进行验证。
(4)服务器端收到客户端的请求之后,会取出token值与保存在本地数据库中的token值进行比较。
(5)如果两个token是一致的,说明用户已登录成功,当前用户处于登录状态。
(6)如果没有这个token值,说明用户没有登录过。
(7)如果token值已经发生改变,说明原登录信息已经失效,需要重新登录。
2.抓包工具
1.chrom抓包
右键-》检查-》找到网络
需要关注的字段
响应内容
2.Fiddler抓包(PC端,手机端)
1.原理
Fiddler是通过改写HTTP代理,让数据从它那通过,来监控并且截取到数据。在打开它的那一瞬间,它就已经设置好了浏览器的代理了。当你关闭的时候,它又帮你把代理还原了。
2.下载安装
官网下载:https://www.telerik.com/fiddler
按照指示填写,下载,然后傻瓜式安装,一直点击是就可以安装成功。
3.抓取数据信息说明
名称 | 含义 |
---|---|
# | 抓取HTTP Request的顺序,图标表示请求状态和响应状态 |
Result | HTTP状态码 (重点关注) |
Protocol | 请求使用的协议,常用HTTP,HTTPS |
Host | 请求地址的主机名 |
URL | 请求资源的位置 |
Body | 请求的大小 |
Caching | 请求的缓存过期时间或者缓存控制值 |
Content-Type | 请求响应的类型 |
Process | 发送此请求的进程:进程ID |
Comments | 允许用户为此回话添加备注 |
Custom | 允许用户设置自定义值 |
要访问HTTPS协议需要设置一下:Tools –> Fiddler Options ,选择HTTPS,勾选Decrypt HTTPS TrafficDecrypt,然后后面弹出的窗口都点击yes/是,点击Actions,最后点击OK
4.数据详细字段说明
名称 | 含义 |
---|---|
Statistics | 请求的性能数据分析 |
Inspectors | 查看数据内容(常用) |
AutoResponder | 允许拦截指定规则的请求 |
Composer | 自定义请求发送服务器 |
Filters | 请求过滤规则(常用) |
Timeline | 请求响应时间 |
5.过滤
过滤最常用,过滤掉不需要的抓包数据,只显示自己需要的,这样看起来会方便很多。文章来源:https://www.toymoban.com/news/detail-444181.html
- Filddler过滤
2)命令过滤
?+字符串
@+host
=+状态码
文章来源地址https://www.toymoban.com/news/detail-444181.html
到了这里,关于接口自动化测试的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!