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

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 【环球时报综合报道】根据最新的彭博亿万富豪指数,印度商业巨头高塔姆·阿达尼超越亚马逊创始人杰夫·贝索斯,以1470亿美元财富位居富豪榜第二,仅次于特斯拉公司首席执行官埃隆·马斯克,这也刷新了亚洲人在这一榜单上排名的最高纪录。除了阿达尼,另一位印度富豪穆克什·安巴尼以880亿美元排名第十。作为阿达尼集团的创始人兼董事长,阿达尼的财富增长相当迅速。今年初,阿达尼还在榜单上排名第14位。4月,阿达尼上升至第10位,排名第9的是当时印度首富安巴尼。这是首次有两名印度人进入世界十大超级富豪榜,两人主导着印度的能源、基础设施、零售和国防发展行业。《印度时报》17日报道称,由于投资组合扩展到更多领域,阿达尼...
            0 0 1329
            分享
          • index:比较两列表元素(不考虑顺序,不考虑重复);调get型数据库接口,循环造数据(示例);连接操作mysql数据库;多进程执行pytest UI脚本(示例)。1、比较两列表元素(不考虑顺序,不考虑重复)def compareList(list1, list2):     """比较列表元素,不考虑顺序,不考虑重复"""     if sorted(set(list1)) == sorted(set(l...
            0 0 1164
            分享
          •   测试行业那些事儿,还有什么是你不知道?填问卷,了解详情。链接:http://vote.51testing.com/  (免费领测试技术资料,数量有限,先填先得~)  在使用JMeter的时候,由于单机的并发经常性的不能满足最大压力的需求,需要多台机器同时压力测试。  在JMeter中使用的应用进场景如下:用一台机器(称为JMeter客户端)上的jmeter同时启动另外几台机器(称为JMeter远程服务器)上的jmeter。  前提条件:  1.保证jmeter客户端和jmeter远程服务器采用相同版本的jmeter和JVM。  2.jmeter客户端和jmeter远程服务器最好在...
            0 0 541
            分享
          •   随着开发的逐渐深入,从节省时间、资源和提高测试效率的角度来说,自动化用例必然会成为一个大众型选择。并且,几乎大大小小的软件公司,都在朝着测试自动化的脚步迈进。  那么,我们应该如何有效地利用自动化测试结果挖掘问题,或者说如何通过自动化测试结果分析出一些问题呢?当然,这里的问题不全指代码故障,也可能包括测试脚本问题。  首先,让我们来看看,软件公司常用的将自动化测试嵌入开发流程方法。提及此,不得不提到DevOps(开发运营一体化)。  传统DevOps流程包括:设计——>开发——>测试——>部署,如下图所示。  构建DevOps流程需要一个持续化集成工具,如Jenkins,...
            11 12 1124
            分享
          • 软件测试是对项目研发过程的产物(文档,代码等)进行审查,保障产品质量的过程。我们可以通过手工测试,自动化测试,工具扫描等方法完成这个任务。其中,自动化测试是当前重要的一种测试方法,具有响应速度快、稳定性高、人工干预少的特点,很好的契合了高响应、海量数据验证等需求的测试任务。数据驱动是自动化测试的灵魂,数据驱动的应用程度直接决定了自动化测试的水平和质量。一、自动化测试和数据驱动如果你有100亩麦子需要收割,你会怎么做?方法一:拎起镰刀或者雇几个人拎起镰刀割麦子。方法二:制造或者购买一台收割机,然后开着收割机割麦子。显然,这两种方法都能完成任务,但是,方法二具有重资产、高效率的特点。测试就如同这割...
            1 1 1619
            分享
      • 51testing软件测试圈微信