• 0
  • 0
分享
  • 分享一个看起来很优雅的优雅接口测试用例——软件测试圈
  • 恬恬圈 2023-09-20 17:17:03 字数 1944 阅读 1230 收藏 0

  接口自动化的代码是比较简单的,单接口用例5行代码,多接口场景用例10行、30行、60行不等,都是那种只要认真看都能看懂的,所以在编写用例代码的时候注释都很简洁。但当很用心去完成一个接口用例时,会发现能做的还可以更多,比如命名和注释,看起来更加赏心悦目。

  场景用例

  获取二维码+二维码扫码结果:

1.png

  看起来是真的舒服呢!下面上代码。

package com.XXXXXXX.api.kjkhd.naturalperson.login;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.XXXXXXX.common.ApiKhdResponse;
import com.XXXXXXX.common.HttpKhdRequest;
import org.springframework.http.HttpMethod;
import org.testng.annotations.Test;
import ru.yandex.qatools.allure.annotations.Title;
import static org.testng.AssertJUnit.assertEquals;
/**
 * create by lxl01 on 2021/11/3
 */
@Title("实名-获取二维码+二维码扫码结果 场景用例")
public class EwmAndEwmjgsqTest extends HttpKhdRequest {
    @Test(dataProvider = "excel", groups = {"kjkhd_http"})
    public void testEwmAndEwmjgsq(String run, String testName, String djxh, String data,String expectData) throws Exception {
        //定义 二维码获取 接口
        String EwmApi = "/dkdj/service/api/naturalperson/login/ewm";
        //执行 二维码获取 接口
        ApiKhdResponse EwmApiResponse = requestKjkhd(EwmApi, djxh, HttpMethod.POST, JSON.parseObject(data), false);
        //获取 二维码扫码结果 需要的参数wybs
        String wybsxx = (String)((JSONObject) EwmApiResponse.getData()).get("wybs");
        //定义 二维码扫码结果 接口
        String EwmjgsqApi = "/dkdj/service/api/naturalperson/login/ewmjgsq";
        //重写 二维码扫码结果获取 入参代码
        String ewmjgsqdata = "{" + " \"wybs\": \"" + wybsxx + "\"}";
        //执行 二维码扫码结果 接口
        ApiKhdResponse EwmjgsqApiResponse = requestKjkhd(EwmjgsqApi, djxh, HttpMethod.POST, ewmjgsqdata, false);
        //进行 二维码扫码结果status字段的校验
        String statusxx = (String)((JSONObject) EwmjgsqApiResponse.getData()).get("status");
        assertEquals(expectData,statusxx);
    }
}

  这次的写法为什么说优雅了呢?因为提取第一个接口的出参给第二个接口当入参的地方我这次只用了一行代码,虽然跟我本次第二个接口的入参只有一个参数且还是String类型有关系,但是还是想提一下这种简洁的思维。

  待办

  APP的UI自动化,今天就水到这里,因为我是上班时间码的,下期更新最近在做的APP的UI自动化,想想还是挺激动的,毕竟是受众群体很广的个人所得税APP,哈哈哈。


作者:海盐甜甜    

来源:http://www.51testing.com/html/22/n-4481222.html

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 目前APP同硬件模块通信的方式主要有几种模式: 蓝牙连接模式、WiFi 连接模式(Socket 或 HTTP server)、DLNA 音视频共享 (iOS端还可使用AirPlay)。最近 点个赞科技项目中测试了 A PP与外设 通 过 蓝牙方式 实现 硬件 连 接 的功能,对相关的开发实现和测试方法进行一些整理, 在此分享给大家。1、蓝牙基础知识iOS平台下蓝牙开发可以使用 MFI(ExternalAccessory 框架)或 BLE (CoreBluetooth 框架) 进行,但实际开发中基本都使用 CoreBluetooth 框架,因为它功能更强大,支持蓝牙4.0标准;蓝牙4.0 BLE...
            13 13 1806
            分享
          •   一 背景介绍  1.什么是Redmine   Redmine是用Ruby开发的基于web的项目管理软件,是用ROR框架开发的一套跨平台项目管理系统。  我们用Redmine 主要是用于 Bug 管理流程,包括新建、已解决、反馈、关闭等状态。  2.事情起因  有一次服务器自动关机,再次重启后发现redmine 的redmine thin1 和thin2 两个服务启动不起来,导致登录页面提示异常,如下图。  二 处理过程  1.启动两个服务  首先出现上图中报错,排查发现redmine thin1 和thin2这两个服务需要重新启动,启动可以在系统服务里启动,也...
            0 0 1589
            分享
          •   应用场景:在API的测试中,测试某些具体数据值,比如返回的结果是否是需求的类型,文件是否是符合且具备完整的数据结构。这些都是必须且很细致的测试工作。另外,组织、运行测试场景,以及演示测试结果这些也都使得测试人员要更加快速的找到合适的API测试方法。今天就详细地介绍如何用Karate组织、运行测试场景,以及验证Json 文件数据的正确性。  如果您想跟着以下示例操作,需要做好以下配置:  测试框架:Java + Karate + Junit 5  语言:Java, Cucumber  IDE:Intellij IDEA  项目类型:Maven  Karate 项目配置  为了能让跟着步骤操作...
            0 0 2085
            分享
          •   1 BUG现象  系统并发请求,系统停滞无法使用,所有接口都是无法与后端进行交互的状态,系统并没有宕机。  2 BUG的业务流程  1)插入分数方法 涉及插入表ABCD 加了声明式事务  2)查询分数方法 涉及表ABCD  controller() {   @Transactional   insertVo();   selectById();   }  3 排查原因  因为代码不是我写的,一开始我就是怀疑是死锁导致的BUG,然后我用Jconsole,去检测一下死锁,并没有发现死锁,接下来我去Mysql看有没有死锁,结果也没有发现,然后我就懵了,jvm没有锁,mysql也没有锁且...
            0 0 1841
            分享
          • 手机App是当下互联网的主流模式之一,因此对于App相关测试需求也在逐年递增中,很多小伙伴没有从事过App相关的测试,有些注意点可能都不是很清楚,下面就我的App测试从业经验,分享给大家啦!目前工作中,测试App会涉及到一下几个方面:客户端、小程序、h5页面等,看似不同却又大相径庭。1、功能模块测试:功能模块测试其实最重要的是考察测试者的逻辑思维能力和对需求的理解能力以及一些页面交互性,输入输出的考虑等,所以以上三者是共通的,没有太大的区别。2、权限管理:1)相同点:需考虑权限允许的情况和权限不允许的情况;需要多测试无系统权限的页面2)不同点:App测试时需要考虑用户是否可以访问手机通讯、相册...
            3 0 2352
            分享
      • 51testing软件测试圈微信