接口初心者心得第二版

作者: 赏味不足 | 来源:发表于2016-11-03 00:36 被阅读205次

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

目前使用的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框架的支持上来讲,断言支持的类型很多,有兴趣的也可以试试看。我目前先按照这个架构往下尝试了,大家可以继续等我的心得。

相关文章

  • 接口初心者心得第二版

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

  • 抽mvp

    第一版: Activity fragment Model View Presenter 接口回调 第二版: ---...

  • 新特性1-接口的默认方法和静态方法

    java8 版之前,接口只有抽象方法,而在Java 8,为接口新增了两种类型的方法。 第一种是默认方法;第二种是静...

  • Golang学习笔记之5:接口

    接口的定义 接口由使用者定义 接口实现是隐士的 只要实现接口里的方法 接口不是简单的引用,他包含实现者类型和实现者...

  • Go 语言极速入门5 - 面向接口

    一、接口 1.1、定义接口 1.2、实现接口 使用值接收者实现接口 对于值接收者,sendNotification...

  • 不忘初心,方得始终

    初心是什么 ? 初心来自日本禅者铃木俊隆的书《禅者的初心》,英文是“ Zen, Beginner's Mind" ...

  • 读书笔记

    书名 :Mysql技术内幕 第二版 第一章 mysql整体架构: 连接池,管理服务及工具组件,sql接口(dml,...

  • OkHttp 之 网络请求耗时统计

    OkHttp 3.11.0版本提供了EventListener接口,可以让调用者接收一系列网络请求过程中的事件,例...

  • 微信小程序:新登录授权的源码详解及图例

    微信官方修改了授权接口:从2018年4月30日开始,小程序体验版、开发版调用 wx.getUserInfo 接口,...

  • 类跟接口非常相似接口是低配版的类。类是高配版的接口。类就是用来创造对象的东西。 继承 公共,私有与受保护的修饰符 ...

网友评论

    本文标题:接口初心者心得第二版

    本文链接:https://www.haomeiwen.com/subject/fdsbuttx.html