本文共 2721 字,大约阅读时间需要 9 分钟。
参数关联,也称为接口关联,是软件开发和测试中的一个重要概念。它指的是在完成某一功能业务时,需要按顺序请求多个接口,而这些接口之间可能存在参数的依赖关系。这种关联关系在实际业务流程中非常常见,尤其是在需要多步骤完成的场景中。
参数关联最常见的场景之一是登录接口后获取token值,后续其他接口请求时需要将token作为请求参数传入。例如,在网上购物流程中,用户下单后会生成订单号,这个订单号会被用于后续的支付接口请求中。
以网上购物为例,用户在购物车中选择商品并点击【去结算】进入订单确认页,点击【提交订单】后会先请求下单接口创建订单。紧接着会拿创建的订单号去请求获取支付凭证接口,调起支付页面。支付完成后,支付接口会返回支付结果。
以下单接口和获取支付凭证接口为例,参数关联可以通过订单号实现。下单接口的请求参数包括商品ID、SKU ID、购买数量和优惠信息等,返回的数据中包含生成的交易订单号。这个订单号会被作为参数传递给支付接口,用于完成支付流程。
下单接口的请求参数如下:
{ "goodsId": 10, "goodsSkuId": 33, "num": 2, "tradePromotion": { "type": 1, "promotionId": 1 }, "tradeDirectionArticle": { "articleId": 1 }} 支付凭证接口的请求参数则是:
{ "orderNo": "0020220116204344962706666", "product": "alipayWapClient"} 通过上述方式,两个接口通过订单号参数实现了关联,确保支付流程顺利进行。
在接口自动化测试中,参数关联可以通过两种方式实现:
def test_order_pay(): # 创建订单 url_order = "https://gouwu.com/trade/order/purchase" data_order = { "goodsId": 10, "goodsSkuId": 33, "num": 2, "tradePromotion": { "type": 1, "promotionId": 1 }, "tradeDirectionArticle": { "articleId": 1 } } res_order = requests.post(url=url_order, json=data_order).text tradeNo = json.loads(res_order)["tradeNo"] # 获取支付凭证 url_pay = "https://gouwu.com/pay/pre/consum" data_pay = { "orderNo": tradeNo, "product": "alipayWapClient" } res_pay = requests.post(url=url_pay, json=data_pay).text res_pay = json.loads(res_pay) # 断言 assert res_pay["code"] == 0 assert res_pay["data"]["payNo"] assert res_pay["data"]["certificate"] yield返回下个接口需要的参数。例如:@pytest.fixture()def get_order(): # 请求下单接口,创建订单 url_order = "https://gouwu.com/trade/order/purchase" data_order = { "goodsId": 10, "goodsSkuId": 33, "num": 2, "tradePromotion": { "type": 1, "promotionId": 1 }, "tradeDirectionArticle": { "articleId": 1 } } res_order = requests.post(url=url_order, json=data_order).text tradeNo = json.loads(res_order)["tradeNo"] yield tradeNodef test_pay(get_order): # 下单-支付场景校验 url_pay = "https://gouwu.com/pay/pre/consum" data_pay = { "orderNo": get_order, "product": "alipayWapClient" } res_pay = requests.post(url=url_pay, json=data_pay).text res_pay = json.loads(res_pay) # 断言 assert res_pay["code"] == 0 assert res_pay["data"]["payNo"] assert res_pay["data"]["certificate"] 参数关联在接口自动化测试中是一个常见且重要的概念。设计关联参数的用例会直接影响到用例的维护和项目架构设计。对于刚入门的同学来说,理解参数关联的实现方式和处理方法是测试工作的基础。
希望这篇文章能为您提供帮助,如果需要更多技术资料,请关注我的微信公众号“测试上分之路”。这些资料对想进阶【自动化测试】的朋友来说是一个全面备战仓库。
转载地址:http://wgofk.baihongyu.com/