openApi@Test测试接口通用方法

这篇博客记录了如何在Java环境下创建OpenAPI的测试接口通用方法,方便开发者进行接口测试时直接复制粘贴使用。

做个笔记,用的着的直接复制粘贴


/**
 * @author 
 */
@Slf4j
public class ExperienceControllerTest {

    @Test
    public void testqueryLevels() {
    public void queryMemberInfo() {
        params.put("appKey", "lgm.exp.key");
        params.put("pampasCall", "lgm.query.current.exp.and.level");
        params.put("memberId", "1000000000006");

        String sign  = sign("lgm.exp.secret");
        params.put("sign",sign);

        log.info("sign is {}",sign);

        post("http://127.0.0.1:8099/api/gateway", params);

    }

    /**
     * 对参数列表进行签名
     */
    public String sign(String secret) {
        try {
            ExperienceQueryRequest request = ExperienceQueryRequest.builder().build();
            //Mockito.when(experienceController.queryLevels()).thenReturn(mockResponse);
            Response<List<ExperienceResponse>> response = experienceController.queryLevels(request);
            String toVerify = Joiner.on('&').withKeyValueSeparator("=").join(params)
### 大厂接口测试自动化的框架与方法 大厂在进行接口测试自动化时,通常会采用一种灵活且可扩展的框架设计思路。这种框架并非固定的模式,而是一种结合了多种思想和方法的架构[^1]。通过这种方法,可以适应不同公司、业务线以及产品线的需求,同时减少不稳定因素的影响。 #### 1. 自动化测试框架的核心思想 自动化测试框架的核心在于提供一种通用的解决方案,能够支持多种场景下的接口测试需求。例如,在实际应用中,框架需要能够处理单接口测试用例以及复杂的业务场景组合用例[^4]。为了实现这一目标,框架通常会包含以下几个关键组成部分: - **配置管理模块**:用于管理测试环境、接口地址以及其他相关参数。 - **数据驱动模块**:支持通过外部文件(如Excel、CSV或JSON)加载测试数据,从而提高测试用例的复用性和灵活性。 - **参数化处理模块**:针对接口间参数依赖关系,通过提取上游接口响应中的字段并将其作为下游接口的输入参数,实现动态的数据传递[^4]。 #### 2. 实践中的具体方法 在大厂的实际实践中,接口自动化测试不仅限于定时触发测试用例,还与模块服务构建的工作流紧密结合。例如,当某个模块的代码更新并部署到环境中后,自动化测试用例会自动运行,从而及时评估代码质量,并判断其是否符合测试准入标准[^3]。这种方法显著提高了测试效率和反馈速度。 此外,大厂通常还会引入以下技术手段来增强接口测试自动化的能力: - **用例自动生成**:基于接口文档或API定义文件(如Swagger或OpenAPI),自动生成基础的测试用例,减少手动编写的工作量[^2]。 - **分布式执行**:利用分布式系统并行执行测试任务,缩短整体测试时间。 - **结果分析与报告生成**:通过集成持续集成/持续交付(CI/CD)工具链,将测试结果实时展示给开发和测试团队,便于问题定位和修复。 #### 3. 示例代码:参数化处理 以下是一个简单的Python代码示例,展示如何通过参数化处理实现接口间的数据传递: ```python import requests def get_token(): url = "https://example.com/login" payload = {"username": "test", "password": "123456"} response = requests.post(url, json=payload) return response.json().get("token") def call_downstream_api(token): url = "https://example.com/api/resource" headers = {"Authorization": f"Bearer {token}"} response = requests.get(url, headers=headers) return response.json() if __name__ == "__main__": token = get_token() result = call_downstream_api(token) print(result) ``` 上述代码展示了如何从登录接口获取`token`,并将该`token`传递给下游接口以完成授权访问[^4]。 #### 4. 推动团队转型的经验 推动测试团队向自动化测试转型是一项挑战性较大的工作。在大厂中,通常会通过以下方式实现: - 提供培训和技术支持,帮助团队成员掌握自动化测试工具和框架的设计方法[^2]。 - 鼓励团队分享实践经验,并申请相关专利以保护创新成果。 - 将自动化测试纳入日常工作流程,确保每位成员都能从中受益。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值