接口自动化测试(一)
1|0一. 接口和接口测试
1. 接口是啥? ===== 传递数据的通道
接口测试:是测试系统组件间接口的一种测试
接口测试主要包括:同一个系统中模块与模块间的接口,另一个是跨系统平台与平台间的对接(内部接口、外部接口)
接口类型:
• HTTP接口:通过GET或POST来获取数据,在数据处理上效率比较高
• Webservice接口:通过soap协议来获取数据,比起http来说能处理更加复杂的数据类型
2|0二. MVC模式
测试系统结构:MVC模式(Model模型、View视图、Control控制器)
前台页面—后台服务数据交互
M:Model,指的是数据库
V:View,指用户看到的视图(呈现页面)
C:Control,逻辑层面,用于M和V之间的交互,接口就是在Control层
3|0三. 客户端和服务器如何建立通信
4|0四. 浏览器中查看接口信息
1. 接口包含的信息:接口地址、请求方法、请求数据、返回数据
2. chrome浏览器,在操作页面的时候,查看与后台的数据交互
F12—Network—Preserve log—XHR
3. 接口通信数据类型:JSON、XML
定义通信协议
5|0五. http通信
请求行:
请求的协议类型、协议版本、请求方法、资源地址
例:get XXXXXX.html http/1.0
消息头(header):
【空行】:
消息体(body):
响应数据(response):
状态行、消息头(header)、【空行】、消息体(body)
以快递盒为例:快递单—消息头 快递盒里的东西—消息体
6|0六. http通信—状态码
状态码由三位数字组成,第一个数字定义了响应的类别,共分为五种类别:
1xx:指示信息—表示请求已接收,继续处理
2xx:成功—表示请求已被成功接收、理解、接受
3xx:重定向—要完成请求必须进行更进一步的操作
4xx:客户端错误—请求有语法错误或请求无法实现
5xx:服务器端错误—服务器未能实现合法的请求
常见状态码:
200 OK 客户端请求成功
400 Bad Request 客户端请求有语法错误,不能被服务器所理解
401 Unauthorized 请求未经授权,这个状态码必须和WWW-Authenticate报头域一起使用
403 Forbidden 服务器收到请求,但是拒绝提供服务
404 Not Found 请求资源不存在,eg:输入了错误的URL
500 Internal Server Error 服务器发生不可预期的错误
503 Server Unavailable 服务器当前不能处理客户端的请求,一段时间后可能恢复正常
7|0七. 接口测试要点
-
检查接口返回的数据是否和预期结果一致
-
检查接口的容错性,假如传递数据的类型错误时是否可以处理。例如上面的例子是支持整数,传递的是小数或字符串呢?
-
接口参数的边界值。例如,传递的参数足够大或为负数时,接口是否可以正常处理
-
接口的性能,接口处理数据的时间也是测试的一个方法。牵扯到内部就是算法和代码的优化 ------响应时间多与少10s,易用性
-
接口的安全性,如果是外部接口的话,这点尤为重要
测试思维相同
8|0八. 实例
以课堂派课堂详情页面为例
得到的结果是,可以看到并没有获得数据(后面将增加cookies)
需要注意的是,request方法的动态参数要以key=value的形式传入,get请求的key是params,post请求是data,value必须写成字典的形式
__EOF__

本文链接:https://www.cnblogs.com/my_captain/p/9313655.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?