天天看點

python+robot framework接口自動化測試

python+requests實作接口的請求前篇已經介紹,還有不懂或者疑問的可以通路

目前我們需要考慮的是如何實作關鍵字驅動實作接口自動化輸出,通過關鍵字的封裝實作一定意義上的腳本與用例的脫離!

robot framework 的安裝不過多說明,網上資料比較太多~

執行個體:!!!!!

步驟一:建立項目

python+robot framework接口自動化測試

測試項目可以目錄或檔案存儲,格式可以用TXT,TSV或HTML格式, 建議項目選擇目錄和TXT,這樣便于管理

 步驟二:建立測試套

python+robot framework接口自動化測試

測試套與測試項目一樣,也可以目錄和檔案存儲,格式也可以用TXT,TSV或HTML格式,建議測試套選擇檔案存儲和TXT

步驟三:建立測試用例

python+robot framework接口自動化測試

————————這一系列的基礎支撐元件建立結束後————目錄結構為————————

python+robot framework接口自動化測試

下面介紹在此架構上如何建立一條用例!!!

我們知道!rf是由關鍵字驅動的,而且是由測試庫識别測試對象、操作被測試對象的。

那麼怎麼使用關鍵字呢?首先我們需要導入測試庫!!!

步驟四:添加lib,此次需要的應用到的測試庫都在截圖中,其實也可以用urllib2這個庫擷取url内容資訊 

ps:json和requests均為python導入的庫!(queryPrdodcut.py為我個人封裝的一個庫)

python+robot framework接口自動化測試

可以通過F5件查詢lib下的方法,看自己需要使用哪個就選應用哪個

python+robot framework接口自動化測試

步驟五,方法應用,按住ctrl就有可以介紹的方法

python+robot framework接口自動化測試

步驟六:輸出一條場景的case,下面就是我個人建立的一個case(目前以第三庫和自己帶的方法輸出的case)

1.set variable 代表設定變量2. catenate代表把多個參數組裝在一起3.requests.get代表使用resquests庫通過get請求擷取response4.should be qeual as strings 代表是是否等于期望值是個斷言(可以參考http://blog.sina.com.cn/s/blog_7f66d4ea0101k3fl.html)

5.log代表檢視内容 

特别說明:通過這個方法可以使用rep.status_code和rep.content

python+robot framework接口自動化測試

用自帶的是不是很繁瑣,輸入了那麼多條才完成了一個請求,是以我封裝了一個關于http的get請求庫(當然checkValue也是我個人封裝的一個函數~)

具體實作如下:

<code>__author__ </code><code>=</code> <code>'niuzhigang'</code>

<code>#!/usr/bin/env python</code>

<code>#*- coding: UTF-8 -*-</code>

<code>#encoding=utf-8</code>

<code>import</code> <code>json</code>

<code>import</code>  <code>requests</code>

<code>class</code> <code>queryProduct(</code><code>object</code><code>):</code>

<code>    </code><code>@classmethod</code>

<code>    </code><code>def</code> <code>interfacetest(</code><code>self</code><code>,reqadress,reqinterface,reqc,reqd, floattimeout):</code>

<code>        </code><code>requrl </code><code>=</code> <code>reqadress </code><code>+</code> <code>reqinterface</code>

<code>        </code><code>print</code> <code>"print requrl ---&gt;"</code><code>+</code><code>requrl</code>

<code>        </code><code>header</code><code>=</code><code>{</code><code>"content-type"</code><code>:</code><code>"application/json"</code><code>}</code>

<code>        </code><code>reqparams </code><code>=</code> <code>{</code><code>'c'</code><code>:reqc, </code><code>'d'</code><code>: reqd}</code>

<code>        </code><code>reqparam </code><code>=</code> <code>json.dumps(reqparams,encoding</code><code>=</code><code>'utf-8'</code><code>,ensure_ascii</code><code>=</code><code>False</code><code>)</code>

<code>        </code><code>print</code>  <code>'print reqparams ---&gt;'</code><code>+</code><code>reqparam</code>

<code>        </code><code>timeout </code><code>=</code> <code>float</code><code>(floattimeout)</code>

<code>        </code><code># get request result</code>

<code>        </code><code>getrep </code><code>=</code> <code>requests.get(url</code><code>=</code><code>requrl,headers</code><code>=</code><code>header, params</code><code>=</code><code>reqparams,timeout</code><code>=</code><code>timeout)</code>

<code>        </code><code>print</code> <code>"get req result ---&gt;"</code><code>+</code><code>getrep.text</code>

<code>        </code><code>return</code> <code>getrep.text</code>

  

 那麼問題來了?怎麼使用自己定義的一個庫呢?(具體如何開發有點python基礎知識就可以了~我也不說了~)

下面請個人封裝的庫上場~ 

python+robot framework接口自動化測試

PS:自己封裝的庫可以根據自己需求列印日志~實作方法就是函數中 print即可!!!!

python+robot framework接口自動化測試

說明:為什麼寫了timeout = float(floattimeout)----&gt;timeout轉float,因為通過rf輸入後為字元串型,是以需要轉float

運作rf結果如下:

python+robot framework接口自動化測試

步驟七:檢視判定結果,執行play鍵或者F8

python+robot framework接口自動化測試

ps藍色的均是超連結可以打開,如:想看具體每個場景case的失敗or通過  ------&gt;點選

python+robot framework接口自動化測試

可以檢視)結果如下:

python+robot framework接口自動化測試

本文轉自lzwxx 51CTO部落格,原文連結:http://blog.51cto.com/13064681/1943436