接口初心者心得第二版

好吧,持续做了几天,我继续来做分享了,也希望各位前辈多多指教。我表示我还不是很懂。

目前使用的testng和rest-assured。这几天增加了DataProvider和rest-assured的方法。

testng这里是支持新建数据驱动的xml,比如:

<?xml version="1.0" encoding="UTF-8"?>
<data>
    <testmethod1>
        <abc>123</abc>
        <def>456</def>
    </testmethod1>

接着可以通过在类中定义DataProvider来实现xml的解析实现,假设dataprovider对应的方法在A类。

@DataProvider
    public static Object[][] providerMethod(Method method) {
...
}

在接下来的要使用到数据的时候就可以直接去添加dataprovider对应的的标签,同时testng会根据test method的方法名去找xml中对应的数据,如:

    @Test(dataProvider = "providerMethod", dataProviderClass = A.class)
    public void testmethod1(Map<?, ?> param) throws InterruptedException {
...

    }

这样就可以直接一对多的进行数据驱动了。

这里我有个问题,一般非testng.xml的准备数据的xml里面,很多数据都是不同类型的,但现在我这边读取出来都是String,这个数据类型的设置在xml里面能够直接设置么?或者还有什么好的方式?欢迎大家来告诉我哈

接着再来看下rest-assured吧,Google了相关信息,相比其它框架少了不少。我就用下来的情况说下心得吧。rest-assured也是结合了BDD风格的一个框架。通过given,when,then的结合更方便的进行了API的验证。虽然我个人还是不是很习惯这个语法。我们来看几个例子。
比如这样的Json:

{
"lotto":{
 "lottoId":5,
 "winning-numbers":[2,45,34,23,7,5,3],
 "winners":[{
   "winnerId":23,
   "numbers":[2,45,34,23,3,5]
 },{
   "winnerId":54,
   "numbers":[52,3,12,11,18,22]
 }]
}
}

那么我们的验证就可以这样写:

expect().
         body("lotto.lottoId", equalTo(5)).
         body("lotto.winners.winnderId", hasItems(23, 54)).
when().
       get("/lotto");

当然我们其实在使用mvn跑的时候我们希望能够看到更多的req,res的日志的话我们可以这样增加,这就是rest-assured style了。

expect().
         log().all().
         body("lotto.lottoId", equalTo(5)).
         body("lotto.winners.winnderId", hasItems(23, 54)).
when().
         get("/lotto");

我们也可以看一个比较复杂点的语句吧。

  given().log().all().contentType("application/json")
                .header("cookie",
                        "abcdefghijkl")
                .request().body(jsonbody).expect().statusCode(200).body("result", equalTo(true)).when()
                .post("/xxxxx");

所以其实一条语句中将请求,返回,断言,包括url_param等都包括在内了。看个人喜好了。不过从rest assured框架的支持上来讲,断言支持的类型很多,有兴趣的也可以试试看。我目前先按照这个架构往下尝试了,大家可以继续等我的心得。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 感谢原作者的奉献,原作者博客地址:http://blog.csdn.net/zhu_ai_xin_520/arti...
    狼孩阅读 14,786评论 1 35
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,447评论 19 139
  • spring官方文档:http://docs.spring.io/spring/docs/current/spri...
    牛马风情阅读 5,708评论 0 3
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,069评论 6 342
  • 如果一个想法(决定)随便因为一个什么理由就放弃了,就一点成功的机会都没有。 本来可以干一件大事的,本来可以和睦相处...
    莞美无瑕阅读 2,555评论 0 0