接口联调Postman测试

接口联调Postman测试在我们工作过程中 有时需要一些接口进行联调

大家好,欢迎来到IT知识分享网。

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

接口联调测试业务分析:

原因:

项目中的接口是多个的

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

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

问题:

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

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

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

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

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

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

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

接口联调Postman测试

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

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

接口联调Postman测试

3、使用Postman工具进行测试

3.1 身份验证技术

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

cookie:

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

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

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

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

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

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

接口联调Postman测试

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

接口联调Postman测试

接口联调Postman测试

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

接口联调Postman测试

session:

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

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

token:

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

有时效性

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

3.2 用Postman 进行接口调用

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

用户注册

接口联调Postman测试

用户登录

接口联调Postman测试

忘记密码提示密保接口、

接口联调Postman测试

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

接口联调Postman测试

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

接口联调Postman测试

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

4.1 设计类图

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

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

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

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

用户注册:yhzc_test()

用户登录:yhdl_test()

忘记密码:wjmi_test()

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

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

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

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

接口联调Postman测试

更多图形—UML类图

接口联调Postman测试

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

接口联调Postman测试

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

接口联调Postman测试

添加类的方法

接口联调Postman测试

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

接口联调Postman测试

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

接口联调Postman测试

4.2  设计流程图

接口联调Postman测试

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

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

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

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

以用户注册为例

接口联调Postman测试

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

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":"", "email":"@.com", "phone":"", "question":"最喜欢的水果", "answer":"苹果"} # 发送注册请求,并获取响应 response=requests.post(url,data=userinfo).text print(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":""} # 发送登录请求,并获取响应 response=requests.post(url,data=userinfo).text print(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).text print(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).text print(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("提交问题答案接口请求接口测试失败") # 返回获取到的token return token # 5、回答完密保问题后修改密码接口 def hdwtxgmm_test(self,token): url="http://localhost:8080/jwshoplogin/user/forget_reset_password.do" # 提交密保答案 print("传入的token",token) userinfo={"username":"张海1", "passwordNew":"", "forgetToken":token} # 发送提交问题答案接口请求,并获取响应 response=requests.post(url,data=userinfo).text print(response) r = response.find("修改密码成功") if r>0: print("提交问题答案接口请求接口测试通过") else: print("提交问题答案接口请求接口测试失败") # 返回获取到的token if __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":"@.com","phone":"","question":"最喜欢的水果","answer":"苹果","role":0,"createTime":00,"updateTime":00}} 用户登录接口测试通过 {"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":"@.com","phone":"","question":"最喜欢的水果","answer":"苹果","role":0,"createTime":00,"updateTime":00}} 用户登录接口测试通过 Process finished with exit code 0 

可以点击加号,把方法隐藏起来

接口联调Postman测试

发现问题1:    workflowobj.hdwtxhmm_test()

TypeError: hdwtxhmm_test() missing 1 required positional argument: ‘self’

workflowobj.tjmbwtda_test()

workflowobj.hdwtxhmm_test()

解决方法:需要把token传入进来。

workflowobj.tjmbwtda_test()

token=workflowobj.tjmbwtda_test()

workflowobj.hdwtxhmm_test(token)

发现问题2:{“status”:1,”msg”:”token错误,请重新获取重置密码的token”}

方法:print(传入的token”,token)

传入的token <__main__.workflow_forgetpassword object at 0x0000000001DC60A0>

方法:def hdwtxhmm_test(tokenself):

修改为def hdwtxhmm_test(self,token):

发现问题3:AttributeError: ‘dict’ object has no attribute ‘find’

response=requests.post(url,data=userinfo).json() msg = response.find("data")

原因:response = requests.post(self.url,data=userinfo).json()

print(response)

r=response.find(row[2])

Find只能找text的文件 ,不能找.json()

改正:response = requests.post(self.url,data=userinfo).text

发现问题4:请求返回的token无法取出

解决方法:先转化为字典类型,再取出

# 1、字符串类型的返回结果,转化为字典类型 
 response=requests.post(url,data=userinfo).text print(response) # 1、字符串类型的返回结果,转化为字典类型 dic={} dic=eval(response) token=dic["data"]

结果:

{"status":0,"data":"5922f75c-7654-4d80-b49a-8108a88bdbe6"} 5922f75c-7654-4d80-b49a-8108a88bdbe6 登录接口不传入任何参数时,测试通过

发现问题5:NameError: name ‘token’ is not defined. Did you mean: ‘open’?

if __name__ == '__main__': work_forgetpasswordObj=work_forgetpassword() # # 1、用户注册接口 # work_forgetpasswordObj.yhzc_test() # # 2、用户登录接口 # work_forgetpasswordObj.yhdl_test() # 3、忘记密码接口 work_forgetpasswordObj.wjmi_test() # 4、提交密保问题答案 work_forgetpasswordObj.tjmbwtda_test() # 5、回答完密保问题后修改密码接口 work_forgetpasswordObj.hdwtxgmm_test(token)

原因:token的值未传入,将token值接收再传入

if __name__ == '__main__': work_forgetpasswordObj=work_forgetpassword() # # 1、用户注册接口 # work_forgetpasswordObj.yhzc_test() # # 2、用户登录接口 # work_forgetpasswordObj.yhdl_test() # 3、忘记密码接口 work_forgetpasswordObj.wjmi_test() # 4、提交密保问题答案 token=work_forgetpasswordObj.tjmbwtda_test() # 5、回答完密保问题后修改密码接口 work_forgetpasswordObj.hdwtxgmm_test(token)

愿每个测试都能顺利转为测试开发,提高职业技能,成为前1%的存在,为社会创造更大的价值,为公司节约更多的成本,为自己和家庭谋求更高的收入,所有人不受职业年龄限制,越老越吃香,直至财富自由;愿测试技术越来越进步,软件质量进一步得到提高,效率提高。愿祖国更加美好,人民更加幸福。多喜乐,常安宁。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/126329.html

(0)
上一篇 2025-09-19 18:45
下一篇 2025-09-19 19:00

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信