1.测试充值接口
想要测试充值接口,那肯定是要先登录账号后,才可以进行充值。查看接口文档,可以看到我们需要得到token和member_id字段值

测试步骤:
- 访问登录接口,得到token,member_id
- 把token添加到headers中
- 把member_id添加到请求数据当中
- 访问充值接口
- 进行余额校验
编写代码之前,需要先把测试用例编写好,编写用例时需要参考接口文档来确定请求头和参数需要的字段内容,然后借用postman来编写预期结果


自动化测试用例代码如下:
import unittest
import requests
import json
from config import config
from ddt import ddt, data
from common.excel import read_excel
# 得到测试数据
excel_data = read_excel(file_name=config.cases_dir, sheet_name='recharge')
@ddt
class TestRecharge(unittest.TestCase):
@data(*excel_data)
def test_recharge(self, info):
# 访问登录接口
headers = {"X-Lemonban-Media-Type": "lemonban.v2"}
json_data = {"mobile_phone": "15100002222", "pwd": "12345678"}
login_resp = requests.request(url=config.host + 'member/login',
method='post',
headers=headers,
json=json_data).json() # 一定要注意加上.json,否则会报错
# 获取member_id和token
member_id = str(login_resp['data']['id']) # id是个整数类型,所以要转换成str,才方便下边替换
token = login_resp['data']['token_info']['token']
# info替换标记的测试数据
json_data = info['json']
headers = info['headers']
# 替换请求体
if "#member_id#" in json_data:
json_data = json_data.replace("#member_id#", member_id)
# 替换请求头
if "#token#" in headers:
headers = headers.replace("#token#", token)
# 转化成字典类型
json_data = json.loads(json_data)
headers = json.loads(headers)
expected = json.loads(info['expected'])
# 访问充值接口
recharge_resp = requests.request(url=config.host + info['url'],
method=info['method'],
headers=headers,
json=json_data).json()
# 断言
for key, value in expected.items():
self.assertEqual(value, recharge_resp[key])
运行结果:
编写代码中遇到的问题:
-
excel_data = read_excel(file_name=config.cases_dir, sheet_name='recharge')读取的sheet表格名字一定记住更换
-
@data(*excel_data)此行代码的*一定不要忘记,否则程序报错,找了半天问题
- 请求接口的代码一定要加上.json()

-
member_id = str(login_resp['data']['id'])一定要把member_id转化成字符串,因为member_id是int
-
for key, value in expected.items(): self.assertEqual(value, recharge_resp[key])断言的代码容易出错,要么直接复制之前写的没问题,要么自己写的时候一定要注意,再不行就用V3版本的断言
虽然测试用例编写好了,但是可以看出代码太多,可重复利用的代码也不少,因此接下来我们需要进行以下几个方面的优化:
- 一个用例的代码太多-->封装函数或者类解决
- 响应数据的获取-->jsonpath

本文介绍了在测试充值接口时如何进行接口校验和数据库余额校验。首先,详细阐述了编写测试用例的过程,包括登录、获取token和member_id,以及断言的注意事项。接着,讨论了代码优化,如将登录接口封装为类,并利用jsonpath处理响应数据。在余额校验部分,分别展示了接口返回数据和数据库查询的校验方法,强调了敏感信息的安全存储和Decimal类型在精度控制上的作用。最后,总结了接口关联测试的方法和注意事项。

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



