首页 > 其他分享 >接口测试

接口测试

时间:2023-01-01 15:23:47浏览次数:56  
标签:请求 报文 接口 响应 测试 客户端

1:接口测试的定义?

目前,软件接口中基HTTP(RESTfull架构)的接口 是软件测试领域最常见的接口。基于我们主要针对的接口类型, 定义为:根据前后两端通信的协议规则,组装一个请求数据发送给服务端,获取到来自服务器端的响应,对响应中的各类数据进行判断,是否符合接口设计时定义的业务和技术需求。

总结为:基于http协议的请求和响应的数据交互是否符合开发设计为接口测试,因此接口测试也叫数据交互测试,在测试过程中,应该关注请求和响应的数据正确性。

 

2:为什么要进行接口测试?

1.接口测试是真正意义上的提前介入测试,而越早和越底层发现bug,其修复成本越低,因此接口测试非常有必要。

2.前端因需求不同而多样多变(比如小程序,h5,原生app,web网页的多形态前端),因此进行接口测试非常有必要,因为后端基本不变。

3. 接口测试相对容易实现自动化持续集成,且相对UI自动化也比较稳定,可以减少人工回归测试人力成本与时间,缩短测试周期,支持后端快速发版需求。接口持续集成是为什么能低成本高收益的根源。

4. 现在很多系统前后端架构是分离的,从安全层面来说:

(1)、只依赖前端进行限制已经完全不能满足系统的安全要求(绕过前面实在太容易), 需要后端同样进行控制,在这种情况下就需要从接口层面进行验证。(前端传参不可信,比如京东购物,前端价格不可能传入-1元,但是通过接口可以传入-1元。)

(2)、前后端传输、日志打印等信息是否加密传输也是需要验证的,特别是涉及到用户的隐私信息,如身份证,银行卡等。

 

3:如何开展接口测试?或者说接口测试的流程?

1、了解接口需求,评审接口测试文档==》(协议描述是否正确和完整,接口是否符合业务需求)如下图所示

2、制定接口测试计划(针对专项接口测试任务)==》测试计划的内容:(确定测试接口的范围,人员,时间任务安排,相关标准事项, 测试工具。)

3、设计接口测试要点==》根据开发提供的文档提取测试点,如下图所示,不仅需要从业务的角度来提取测试点,还需要从实现技术上来提取。

4、将文字用例转换为接口测试工具的”脚本文件”==》接口测试通常借助工具(如postman,jmeter等)进行,因此需要将用例转换

5、执行各工具下的脚本并判断结果==》接口是否正确需要进行判断,因此会基于响应状态码,响应时间和响应正文进行断言来判断

 

4:接口的请求和响应的构成?或者说http协议的构成

链接资料有常见的请求头和响应头数据:HTTP 结构详解_Simki的博客-CSDN博客_http结构

 

请求报文如下构成:
  请求行:包含请求的方法,请求的URL和请求的HTTP版本
  请求头:从客户端向服务器端发送请求报文是使用的首部。补充说明了请求的附加内容、客户端信息、响应内容优先级等信息。(如set-cookies等非Http协议的请求头)
  空行:[CR+LF]由它来划分
  请求主体:应该被发送的数据(并不一定要有报文主体,如get请求)

响应报文如下构成:
  状态行:包含Http版本号,响应结果状态码和原因语句
  响应头:从服务器向客户端返回响应报文是使用的首部。补充说明了响应的附加内容,也会要求客户端附加额外的内容信息 。
  空行:[CR+LF]由它来划分
  响应主体:同上

 

5:响应状态码详解

1xx:100-101 信息提示,表示请求成功,需要用户继续发送请求
2xx:200-206 成功
3xx:300-307 页面重定向
4xx:400-415 错误类信息,客户端错误
5xx:500-505 错误类信息,服务器端错误

常见的http协议的响应状态码

200: 成功,请求数据通过响应报文的entity-body部分发送;OK
301: 请求的URL指向的资源已经被删除;但在响应报文中通过首部Location指明了资源现 在所处的新位置;Moved Permanently
302: 响应报文Location指明资源临时新位置 Moved Temporarily
304: 客户端发出了条件式请求,但服务器上的资源未曾发生改变,则通过响应此响应状态 码通知客户端;Not Modified
307: 浏览器内部重定向
401: 需要输入账号和密码认证方能访问资源;Unauthorized
403: 请求被禁止;Forbidden
404: 服务器无法找到客户端请求的资源;Not Found
500: 服务器内部错误;Internal Server Error
502: 代理服务器从后端服务器收到了一条伪响应,如无法连接到网关;Bad Gateway
503: 服务不可用,临时服务器维护或过载,服务器无法处理请求
504: 网关超时

 

标签:请求,报文,接口,响应,测试,客户端
From: https://www.cnblogs.com/lwcx/p/17018060.html

相关文章

  • 接口2.0
    jdk8以后,允许在接口中定义默认的方法,但是必须用关键字default修饰,作用是解决接口升级的问题,防止出现接口改变,实现类必须重写方法的现象接口中默认方法的定义格式:publicd......
  • Vulnhub之Jangow:1.0.1靶机完整详细测试过程
    Jangow作者:jason_huawen靶机信息名称:Jangow:1.0.1地址:识别目标主机IP地址(kali㉿kali)-[~/Vulnhub/jangow_2]└─$sudonetdiscover-ieth1-r192.168.56.0/......
  • PyTorch 2.0 推理速度测试:与 TensorRT 、ONNX Runtime 进行对比
    PyTorch2.0于2022年12月上旬在NeurIPS2022上发布,它新增的torch.compile组件引起了广泛关注,因为该组件声称比PyTorch的先前版本带来更大的计算速度提升。这......
  • 自动化测试训练营——环境搭建(jdk+mysql+maven+IDEA)
    前言虽然已经有了写自动化脚本的经验,但是从来没有系统的学习过,在工作过程中也一直是懵懵懂懂,因为公司一切东西都已经是流程化了,现成的框架和技术,我不懂原理,也没有人问。在......
  • 【单元测试】Mockito
    POM<dependency><groupId>org.mockito</groupId><artifactId>mockito-all</artifactId><version>1.10.19</version><scope>test</scope></dependen......
  • 【单元测试】测试替身
    http://xunitpatterns.com/Test%20Double.html  Astubhasnologic,andonlyreturnswhatyoutellittoreturn.Amockhasexpectationsaboutthewayi......
  • 【单元测试】jUnit框架
    POM配置<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency>JavaTest类结构ClassXXXTe......
  • Linux 安装Nginx集群测试
    5.1停止Nginx服务的四种方法从容停止服务这种方法较stop相比就比较温和一些了,需要进程完成当前工作后再停止。nginx-squit立即停止服务这种方法比较强硬,无论进程......
  • 【单元测试】SpringRunner执行原理
     https://zhuanlan.zhihu.com/p/571520010  SpringRunner实现Junit暴露的BlockJUnit4ClassRunner  SpringJUnit4ClassRunner实现了BlockJUnit4ClassRunner,它......
  • 【单元测试】基础理论
    https://insights.thoughtworks.cn/practical-test-pyramid/https://developer.aliyun.com/article/792515 Java编程技巧之单元测试用例编写流程https://developer.51c......