持續(xù)改進(jìn)的自動(dòng)化框架的一點(diǎn)筆記

寫在閱讀前

  筆記的用途,能讓你很快回憶起學(xué)習(xí)時(shí)候的點(diǎn)滴爱榔。
初學(xué)者更應(yīng)該記下更多的記筆記被环,也許有高手點(diǎn)開你的筆記,
會(huì)說(shuō)垃圾文章详幽,抄襲狗筛欢,但是對(duì)于初學(xué)者,你的筆記唇聘,
也許剛好就有其他新人也遇到的坑版姑,你剛好可以解決和你水平差不多人的問(wèn)題。
 一切的工具迟郎,都是從實(shí)際應(yīng)用出發(fā)剥险!~
但是我們可以構(gòu)建好自己想要的框架,也許有一天遇到更好的宪肖,會(huì)有更深刻的記憶

設(shè)計(jì)的接口框架是這樣的:

可以有界面錄入表制,可以維護(hù)健爬,修改,展示夫凸,執(zhí)行測(cè)試用例浑劳。


屏幕快照 2018-07-02 下午11.03.46.png

此類框架,場(chǎng)景化接口夭拌,接口加密魔熏,需要額外界面支持,數(shù)據(jù)需要入庫(kù)鸽扁,整體技術(shù)要求更高蒜绽,需要多個(gè)人維護(hù)框架。并且框架本身可能也有bug桶现。前期準(zhǔn)備時(shí)間較長(zhǎng)

2:常用型框架

測(cè)試人員維護(hù)xml文件躲雅,xml文件主要是接口入?yún)ⅲY(jié)果校驗(yàn)信息等骡和。
此類框架相赁,編寫也比較簡(jiǎn)單,就是會(huì)有大量的xml文件慰于,需要做好管理钮科,優(yōu)勢(shì)在于,對(duì)于多樣的接口婆赠,有更自由的支持绵脯,對(duì)于校驗(yàn),多樣化
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="suite" verbose="1" >
    <test name = "login">
        <classes>
            <class name="testcase.LoginCase"></class>
            <parameter name="logincase" value='{"urlPath":"api/autoLogin","queryParameters":{"mobile":"15821387135"},"method":"GET"}'/>
       </classes>
      </test>
</suite>

3:本次來(lái)分享一個(gè)基于自然語(yǔ)言格式的測(cè)試框架RestAssured

需要用到的依賴jar
      <dependency>
            <groupId>io.rest-assured</groupId>
            <artifactId>rest-assured</artifactId>
            <version>3.0.5</version>
        </dependency>

//code部分
 @Test
    public void testDemo() {
        Response response = given
                .contentType("application/x-www-form-urlencoded")
                .params("mobile", "15821387135", "clientNo", 222222)
                .expect()
                // 判斷 status 是不是SUCCESS
                .body("status", equalTo("SUCCESS"))
                .when()
                .get("http://events.pingan.com/api/autoLogin");
                 // 打印出 response 的body
                response.print();
    }

設(shè)置header休里,cookie

header和cookie的設(shè)置類似param蛆挫,存在header()、headers()妙黍、
 cookie()悴侵、cookies()方法,使用也跟param類似:
Response response = given()
                .cookie("cookie","value")
                .cookies("cookiename1", "value1", "cookiename2", "value2")
                .header("Accept-Encoding:", "gzip, deflate")
                .headers("header1","value1","header2","value2")
                .get("url");

解析JSON

Rest Assured 自帶支持對(duì)JSON废境、xml的解析
//    @Test()
    public void getHttpTest() {
        Response response = given().get("http://events.pingan.com/api/autoLogin");
               // 打印出 response 的body
                 response.print();
                 int statusCode = response.getStatusCode();
                 System.out.println(statusCode);

               //同一個(gè)字段畜挨,可以多種格式來(lái)接受statusCode
                 String statusCode2 = response.jsonPath().getInt("statusCode");
                 System.out.println(statusCode2);

                 String status = response.jsonPath().getString("statusCode");
                 System.out.println(status);

代理(proxy)配置

given().proxy("localhost", 8888)

JSON Schema Validation

可以自行百度JSON Schema Validation格式
json契約精神,非常強(qiáng)大的規(guī)范校驗(yàn)工具噩凹,估計(jì)很多人已經(jīng)遺忘

JsonSchemaFactory jsonSchemaFactory = JsonSchemaFactory.newBuilder().setValidationConfiguration(ValidationConfiguration.newBuilder().setDefaultVersion(DRAFTV4).freeze()).freeze();

// When
get("/products").then().assertThat().body(matchesJsonSchemaInClasspath("products-schema.json").using(jsonSchemaFactory));
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市毡咏,隨后出現(xiàn)的幾起案子驮宴,更是在濱河造成了極大的恐慌,老刑警劉巖呕缭,帶你破解...
    沈念sama閱讀 211,123評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件堵泽,死亡現(xiàn)場(chǎng)離奇詭異修己,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)迎罗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門睬愤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人纹安,你說(shuō)我怎么就攤上這事尤辱。” “怎么了厢岂?”我有些...
    開封第一講書人閱讀 156,723評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵光督,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我塔粒,道長(zhǎng)结借,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,357評(píng)論 1 283
  • 正文 為了忘掉前任卒茬,我火速辦了婚禮船老,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘圃酵。我一直安慰自己柳畔,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評(píng)論 5 384
  • 文/花漫 我一把揭開白布辜昵。 她就那樣靜靜地躺著荸镊,像睡著了一般。 火紅的嫁衣襯著肌膚如雪堪置。 梳的紋絲不亂的頭發(fā)上躬存,一...
    開封第一講書人閱讀 49,760評(píng)論 1 289
  • 那天,我揣著相機(jī)與錄音舀锨,去河邊找鬼岭洲。 笑死,一個(gè)胖子當(dāng)著我的面吹牛坎匿,可吹牛的內(nèi)容都是我干的盾剩。 我是一名探鬼主播,決...
    沈念sama閱讀 38,904評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼替蔬,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼告私!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起承桥,我...
    開封第一講書人閱讀 37,672評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤驻粟,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后凶异,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蜀撑,經(jīng)...
    沈念sama閱讀 44,118評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡挤巡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了酷麦。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片矿卑。...
    茶點(diǎn)故事閱讀 38,599評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖沃饶,靈堂內(nèi)的尸體忽然破棺而出母廷,到底是詐尸還是另有隱情,我是刑警寧澤绍坝,帶...
    沈念sama閱讀 34,264評(píng)論 4 328
  • 正文 年R本政府宣布徘意,位于F島的核電站,受9級(jí)特大地震影響轩褐,放射性物質(zhì)發(fā)生泄漏椎咧。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評(píng)論 3 312
  • 文/蒙蒙 一把介、第九天 我趴在偏房一處隱蔽的房頂上張望勤讽。 院中可真熱鬧,春花似錦拗踢、人聲如沸脚牍。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)诸狭。三九已至,卻和暖如春君纫,著一層夾襖步出監(jiān)牢的瞬間驯遇,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工蓄髓, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留叉庐,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,286評(píng)論 2 360
  • 正文 我出身青樓会喝,卻偏偏與公主長(zhǎng)得像陡叠,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子肢执,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容