接口联调测试

2024-06-19 03:20
文章标签 接口 测试 联调

本文主要是介绍接口联调测试,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在我们工作过程中,有时需要一些接口进行联调。接口联调测试,就是按照业务要求,把接口进行组合测试。接口组合起来才能实现完整的业务,体现更大的价值。

接口联调测试业务分析:

原因:

项目中的接口是多个的

接口组合起来才能实现完整的业务

接口之间有些存在依赖关系

问题:

接口之间调用时,是否正确

接口组合起来,能否完成预定的业务

接口之间的依赖关系,是否能够正确实现。

接口联调测试工作计划分解

  1. 接口联调测试业务分析
  2. 接口测试联调测试设计
  3. 使用Postman工具进行测试
  4. 编写接口联调测试脚本
  5. 接口联调测试工作总结

1、接口联调测试业务分析

首先我们对接口进行整体联调分析,要对所有的接口有一个全局认识,包括接口名称、接口功能、接口参数、接口返回值,把他们列一个表格,把抽象工作任务转化为具体的工作成果物。

2、接口测试联调测试设计

目前针对用户注册、用户登录、忘记密码、提交密保问题答案、回答完密保问题后修改密码等作为一个接口联调的测试。

3、使用Postman工具进行测试

3.1 身份验证技术

我们的接口网络访问是基于HTTP协议的,它是一种无状态的协议。虽然已经登录成功。但是重新打开一个页面后,相当于中心发送新的请求,服务器就无法判断是登录后的用户还是未登录的用户。所以必须通过一种方式记录用户的身份,在发送页面请求时需要带着这个信息发给服务器。

cookie:

登录以后,在浏览器端本地生成一个文件,保存在浏览器的客户端。

一般会存储用户的身份信息。

可以删除,删除后,重新登录可以再次生成。

有些系统也会通过cookie记录一些用户的操作习惯。

以谷歌浏览器为例,浏览器查看cookies

点击设置--安全和隐私设置---Cookie及其他网站数据。

在隐私和安全中,查看所有网站数据和权限

也可以在清除浏览数据时,删除掉

session:

登录后,服务器端发送一个随机的session ID值,来进行用户身份的识别。

有时效性,代码中进行设计,一般30分钟

token:

登录后,服务器端发送一个token令牌

有时效性

可以支持多平台访问,可支持访问第三方网站或系统。

3.2 用Postman 进行接口调用

用户注册、用户登录、忘记密码、提交密保问题答案、回答完密保问题后修改密码,只考虑正确的情况。

用户注册

用户登录

忘记密码提示密保接口、

提交密保问题答案、会得到一个新的token

回答完密保问题后修改密码,要将上个接口返回的token作为参数传进去。

4、编写接口联调测试脚本

4.1 设计类图

方法1:一个 接口对应一个类

接口比较少时可以采用(3个左右)

方法2:设计一个类对应多个测试方法,一个测试方法进行一个接口测试。

本类的设计采用方案2。将用户注册、用户登录、忘记密码、提交密保问题答案、回答完密保问题后修改密码设计成一个类中的五个方法。

用户注册:yhzc_test()

用户登录:yhdl_test()

忘记密码:wjmi_test()

提交密保问题答案:tjmbwtda_test()

回答完密保问题后修改密码:hdwtxgmm_test()

首先画一个类的设计图,这个也是需要具备的一个能力

可以在wps中找到,插入---流程图

更多图形---UML类图

下面就会出现uml类图的模板

也可以在visio中,选择“文件”-“新建”-“软件和数据库”-“UML模型图”;

添加类的方法

在提交密保问题答案,tjmbwtda_test()方法需要把获取的token作为返回值

回答完密保问题后修改密码方法,hdwtxgmm_test()需要将获得的token传入进去。

4.2  设计流程图

定义一个类,定义五个方法。

1、一个方法对应一个接口测试,参数:URL接口请求地址、接口参数,返回值

2、只考虑正常接口数据的测试

3、提交密保问题答案接口的返回值forgettoken,要作为回答完密保问题后修改密码的输入参数,方法中要定义一个方法参数。

以用户注册为例

每一个测试方法具体实现过程:

1、设置接口请求地址

2、设置接口参数

3、发送请求并接收响应

4、对响应结果进行判断:测试通过,测试失败

4.3 脚本实现

1、先把类定义好

2、实现一个方法,就调试一个方法,需要在main中进行。

3、方法调试通过后,再加入其他方法

# 针对多个接口进行联调测试,接口内容如下:
# 1、用户注册接口
# 2、用户登录接口
# 3、忘记密码接口
# 4、提交密保问题答案
# 5、回答完密保问题后修改密码接口
import requests
# 定义一个接口联调的测试类
class workflow_forgetpassword_test():# 用户注册接口def yhzc_test(self):url="http://localhost:8080/jwshoplogin/user/register.do"# 正确的用户注册数据userinfo={"username":"张海1","password":"123456","email":"1234561@qq.com","phone":"13311095555","question":"最喜欢的水果","answer":"苹果"}# 发送注册请求,并获取响应response=requests.post(url,data=userinfo).textprint(response)r=response.find("注册成功")if r>0:print("用户注册接口测试通过")else:print("用户注册接口测试失败")# 2、用户登录接口def yhdl_test(self):url="http://localhost:8080/jwshoplogin/user/login.do"# 正确的用户登录数据userinfo={"username":"张海1","password":"123456"}# 发送登录请求,并获取响应response=requests.post(url,data=userinfo).textprint(response)r=response.find("登录成功")if r>0:print("用户登录接口测试通过")else:print("用户登录接口测试失败")# 3、忘记密码接口def wjmi_test(self):url="http://localhost:8080/jwshoplogin/user/forget_get_question.do"# 正确的用户忘记密码数据userinfo={"username":"张海1"}# 发送用户忘记密码请求,并获取响应response=requests.post(url,data=userinfo).textprint(response)r=response.find("最喜欢的水果")if r>0:print("用户忘记密码接口测试通过")else:print("用户忘记密码接口测试失败")# 4、提交密保问题答案def tjmbwtda_test(self):url="http://localhost:8080/jwshoplogin/user/forget_check_answer.do"# 提交密保答案userinfo={"username":"张海1","question":"最喜欢的水果","answer":"苹果"}# 发送提交问题答案接口请求,并获取响应response=requests.post(url,data=userinfo).textprint(response)# 1、字符串类型的返回结果,转化为字典类型dic={}dic=eval(response)token=dic["data"]print(token)# r=response.find("data")r = response.find(token)if r>0:print("提交问题答案接口请求接口测试通过")else:print("提交问题答案接口请求接口测试失败")# 返回获取到的tokenreturn token# 5、回答完密保问题后修改密码接口def hdwtxgmm_test(self,token):url="http://localhost:8080/jwshoplogin/user/forget_reset_password.do"# 提交密保答案print("传入的token",token)userinfo={"username":"张海1","passwordNew":"123456","forgetToken":token}# 发送提交问题答案接口请求,并获取响应response=requests.post(url,data=userinfo).textprint(response)r = response.find("修改密码成功")if r>0:print("提交问题答案接口请求接口测试通过")else:print("提交问题答案接口请求接口测试失败")# 返回获取到的tokenif __name__ == '__main__':workflowobj=workflow_forgetpassword_test()# 1、用户注册接口workflowobj.yhzc_test()# 2、用户登录接口workflowobj.yhdl_test()# 3、忘记密码接口workflowobj.wjmi_test()# 4、提交密保问题答案token=workflowobj.tjmbwtda_test()# print("返回的token",token)# 5、回答完密保问题后修改密码接口workflowobj.hdwtxgmm_test(token)# 2、用户登录接口workflowobj.yhdl_test()

代码的运行结果为:

{"status":0,"data":"注册成功"}
用户注册接口测试通过
{"status":0,"msg":"登录成功","data":{"id":26,"username":"张海1","password":null,"email":"1234561@qq.com","phone":"13311095555","question":"最喜欢的水果","answer":"苹果","role":0,"createTime":1718710825000,"updateTime":1718710825000}}
用户登录接口测试通过
{"status":0,"data":"最喜欢的水果"}
用户忘记密码接口测试通过
{"status":0,"data":"3c2898f3-762e-4130-8d4f-de9c204b321d"}
3c2898f3-762e-4130-8d4f-de9c204b321d
提交问题答案接口请求接口测试通过
传入的token 3c2898f3-762e-4130-8d4f-de9c204b321d
{"status":0,"msg":"修改密码成功"}
提交问题答案接口请求接口测试通过
{"status":0,"msg":"登录成功","data":{"id":26,"username":"张海1","password":null,"email":"1234561@qq.com","phone":"13311095555","question":"最喜欢的水果","answer":"苹果","role":0,"createTime":1718710825000,"updateTime":1718710825000}}
用户登录接口测试通过Process finished with exit code 0

这篇关于接口联调测试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1073870

相关文章

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

字节面试 | 如何测试RocketMQ、RocketMQ?

字节面试:RocketMQ是怎么测试的呢? 答: 首先保证消息的消费正确、设计逆向用例,在验证消息内容为空等情况时的消费正确性; 推送大批量MQ,通过Admin控制台查看MQ消费的情况,是否出现消费假死、TPS是否正常等等问题。(上述都是临场发挥,但是RocketMQ真正的测试点,还真的需要探讨) 01 先了解RocketMQ 作为测试也是要简单了解RocketMQ。简单来说,就是一个分

【测试】输入正确用户名和密码,点击登录没有响应的可能性原因

目录 一、前端问题 1. 界面交互问题 2. 输入数据校验问题 二、网络问题 1. 网络连接中断 2. 代理设置问题 三、后端问题 1. 服务器故障 2. 数据库问题 3. 权限问题: 四、其他问题 1. 缓存问题 2. 第三方服务问题 3. 配置问题 一、前端问题 1. 界面交互问题 登录按钮的点击事件未正确绑定,导致点击后无法触发登录操作。 页面可能存在

业务中14个需要进行A/B测试的时刻[信息图]

在本指南中,我们将全面了解有关 A/B测试 的所有内容。 我们将介绍不同类型的A/B测试,如何有效地规划和启动测试,如何评估测试是否成功,您应该关注哪些指标,多年来我们发现的常见错误等等。 什么是A/B测试? A/B测试(有时称为“分割测试”)是一种实验类型,其中您创建两种或多种内容变体——如登录页面、电子邮件或广告——并将它们显示给不同的受众群体,以查看哪一种效果最好。 本质上,A/B测

Java 后端接口入参 - 联合前端VUE 使用AES完成入参出参加密解密

加密效果: 解密后的数据就是正常数据: 后端:使用的是spring-cloud框架,在gateway模块进行操作 <dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>30.0-jre</version></dependency> 编写一个AES加密

java线程深度解析(一)——java new 接口?匿名内部类给你答案

http://blog.csdn.net/daybreak1209/article/details/51305477 一、内部类 1、内部类初识 一般,一个类里主要包含类的方法和属性,但在Java中还提出在类中继续定义类(内部类)的概念。 内部类的定义:类的内部定义类 先来看一个实例 [html]  view plain copy pu

模拟实现vector中的常见接口

insert void insert(iterator pos, const T& x){if (_finish == _endofstorage){int n = pos - _start;size_t newcapacity = capacity() == 0 ? 2 : capacity() * 2;reserve(newcapacity);pos = _start + n;//防止迭代

Verybot之OpenCV应用一:安装与图像采集测试

在Verybot上安装OpenCV是很简单的,只需要执行:         sudo apt-get update         sudo apt-get install libopencv-dev         sudo apt-get install python-opencv         下面就对安装好的OpenCV进行一下测试,编写一个通过USB摄像头采

京东物流查询|开发者调用API接口实现

快递聚合查询的优势 1、高效整合多种快递信息。2、实时动态更新。3、自动化管理流程。 聚合国内外1500家快递公司的物流信息查询服务,使用API接口查询京东物流的便捷步骤,首先选择专业的数据平台的快递API接口:物流快递查询API接口-单号查询API - 探数数据 以下示例是参考的示例代码: import requestsurl = "http://api.tanshuapi.com/a

BIRT 报表的自动化测试

来源:http://www.ibm.com/developerworks/cn/opensource/os-cn-ecl-birttest/如何为 BIRT 报表编写自动化测试用例 BIRT 是一项很受欢迎的报表制作工具,但目前对其的测试还是以人工测试为主。本文介绍了如何对 BIRT 报表进行自动化测试,以及在实际项目中的一些测试实践,从而提高了测试的效率和准确性 -------