接口测试框架实战(四) | 通用 API 封装实战

简介: 接口测试框架实战(四) | 通用 API 封装实战

本文节选自霍格沃玆测试学院内部教材,文末链接进阶学习。

在 APIObject 设计模式中,需要一个 base_api 作为其他 API 步骤的父类,把通用功能放在这个父类中,供其他的 API 直接继承调用。这样做的优点在于,减少重复代码,提高代码的复用性。

通用 API 封装实战

在上一章节在演示使用 API-Object 设计模式对脚本进行改造时提到了 base_api。不过在上一章,仅仅只是封装了一个 utils 中的一个简单方法。并没有完全体现出 base_api 的实际作用。
接下来,我们通过通用接口协议的定义与封装实战,来实际体会一下 base_api 的巧妙之处。

  • base_api.py
    在代码内,对 request 进行一层封装,当然在这里还看不出来具体的优势:
import requests

class BaseApi:

    def request(self, method, url, **kwargs):
        self.json_data = requests.request(method=method, url=url, **kwargs)
        return self.json_data
  • wework.py

继承于类 BaseApi,可以直接调用父类中的 request 方法(不需要导入 requests 库),从而发起一个 get 请求:

from test_interface.test_wework.api.base_api import BaseApi

class WeWork(BaseApi):
    corpid = "ww93348658d7c66ef4"
    contact_secret = "T0TFrXmGYel167lnkzEydsjl6bcDDeXVmkUnEYugKIw"
    token = dict()
    token_url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken"

    def get_access_token(self):
        r = self.request(method="get", url=self.token_url,
                         params={"corpid": self.corpid, "corpsecret": self.contact_secret})
        return r.json()
  • test_wework.py
    继承于类 WeWork,主要目的只是为了检查上面的 get_access_token(self) 是否成功:
from test_interface.test_wework.api.wework import WeWork

class TestWeWork(WeWork):

    def test_get_access_token(self):
        r = self.get_access_token()
        assert r["errcode"]==0

以上,在上面的案例中,在 base_api.py 中对 requests 进行了多一层的封装,这样只要是属于 BaseApi 这个类的子类,都可以无需引用而直接调用 requests 库。从而发起各种各样的请求,实现了通用接口协议的定义与封装。
更多接口测试框架实战进阶内容,我们在后续文章分享。

更多技术文章分享及测试资料

相关文章
|
5天前
|
数据可视化 前端开发 测试技术
接口测试新选择:Postman替代方案全解析
在软件开发中,接口测试工具至关重要。Postman长期占据主导地位,但随着国产工具的崛起,越来越多开发者转向更适合中国市场的替代方案——Apifox。它不仅支持中英文切换、完全免费不限人数,还具备强大的可视化操作、自动生成文档和API调试功能,极大简化了开发流程。
|
16天前
|
程序员 API 开发者
实战阿里qwen2.5-coder 32B,如何配置Cline的Ollama API接口。
阿里Qwen2.5大模型开源免费,适合编程应用。在Ollama平台下载时,推荐选择带有“cline”字样的Qwen2.5-Coder版本,仅需额外下载适配文件,无需重复下载模型文件。Ollama环境永久免费,配置简单,效果出色,适合开发者使用。
760 77
|
9天前
|
供应链 搜索推荐 API
深度解析1688 API对电商的影响与实战应用
在全球电子商务迅猛发展的背景下,1688作为知名的B2B电商平台,为中小企业提供商品批发、分销、供应链管理等一站式服务,并通过开放的API接口,为开发者和电商企业提供数据资源和功能支持。本文将深入解析1688 API的功能(如商品搜索、详情、订单管理等)、应用场景(如商品展示、搜索优化、交易管理和用户行为分析)、收益分析(如流量增长、销售提升、库存优化和成本降低)及实际案例,帮助电商从业者提升运营效率和商业收益。
79 17
|
3天前
|
XML API 开发者
探究获取亚马逊畅销榜API接口及实战应用
亚马逊MWS(商城网络服务)提供了一系列API接口,帮助开发者获取平台数据,其中畅销榜API尤为关键。通过注册开发者账号、创建应用并申请权限,可使用HTTP POST请求获取商品的销售排名、价格等信息。Python代码示例展示了如何构建和发送请求,并处理返回的XML或JSON数据。注意遵守亚马逊的频率限制、数据准确性和合规性要求,以确保安全合法地利用这些数据支持电商业务决策。
15 1
|
4天前
|
JSON 监控 API
获取1688商品SKU信息API接口及实战应用
在电商蓬勃发展的今天,数据成为宝贵的财富。1688作为国内知名批发采购平台,提供商品SKU信息API接口,可获取库存、价格、规格等关键数据,助力电商运营、市场分析和价格监控。本文介绍如何注册1688开放平台账号、创建应用并获取AppKey/AppSecret,申请API权限,使用Python实现接口调用,处理响应数据,并注意请求频率限制和错误处理。通过该接口,可为电商运营和数据分析提供有力支持。
21 2
|
5天前
|
存储 测试技术 数据库
接口测试工具攻略:轻松掌握测试技巧
在互联网快速发展的今天,软件系统的复杂性不断增加,接口测试工具成为确保系统稳定性的关键。它如同“翻译官”,模拟请求、解析响应、验证结果、测试性能并支持自动化测试,确保不同系统间信息传递的准确性和完整性。通过Apifox等工具,设计和执行测试用例更加便捷高效。接口测试是保障系统稳定运行的第一道防线。
|
5天前
|
Web App开发 JSON 测试技术
API测试工具集合:让接口测试更简单高效
在当今软件开发领域,接口测试工具如Postman、Apifox、Swagger等成为确保API正确性、性能和可靠性的关键。Postman全球闻名但高级功能需付费,Apifox则集成了API文档、调试、Mock与自动化测试,简化工作流并提高团队协作效率,特别适合国内用户。Swagger自动生成文档,YApi开源但功能逐渐落后,Insomnia界面简洁却缺乏团队协作支持,Paw仅限Mac系统。综合来看,Apifox是国内用户的理想选择,提供中文界面和免费高效的功能。
|
6天前
|
安全 程序员 API
API对于程序员的多元用法:从基础到实战
API(应用程序编程接口)是现代软件开发中不可或缺的工具,充当不同系统间沟通的桥梁。通过API,程序员可以轻松获取外部数据、扩展应用功能、实现微服务间的通信等,极大提升开发效率和应用功能性。常见的API类型包括Web API、本地API和第三方API。使用API,开发者能快速集成复杂功能(如支付、物流跟踪),并确保数据安全与管理。掌握API的开发、维护及安全管理技巧,对构建高效、稳定的应用至关重要。随着数字化进程加速,API的重要性将不断提升。
19 1
|
25天前
|
安全 API 数据安全/隐私保护
速卖通AliExpress商品详情API接口深度解析与实战应用
速卖通(AliExpress)作为全球化电商的重要平台,提供了丰富的商品资源和便捷的购物体验。为了提升用户体验和优化商品管理,速卖通开放了API接口,其中商品详情API尤为关键。本文介绍如何获取API密钥、调用商品详情API接口,并处理API响应数据,帮助开发者和商家高效利用这些工具。通过合理规划API调用策略和确保合法合规使用,开发者可以更好地获取商品信息,优化管理和营销策略。
|
1月前
|
监控 JavaScript 测试技术
postman接口测试工具详解
Postman是一个功能强大且易于使用的API测试工具。通过详细的介绍和实际示例,本文展示了Postman在API测试中的各种应用。无论是简单的请求发送,还是复杂的自动化测试和持续集成,Postman都提供了丰富的功能来满足用户的需求。希望本文能帮助您更好地理解和使用Postman,提高API测试的效率和质量。
101 11

热门文章

最新文章