Python+unittest+requests+HTMLTestRunner接口自動(dòng)化測(cè)試框架

簡(jiǎn)介:

在接口測(cè)試工作中為大家所熟知的工具有很多罕扎,如postman、soupUI丐重、jmeter腔召、RF框架......,其大多使用簡(jiǎn)單且功能強(qiáng)大弥臼,但為何還要進(jìn)行接口測(cè)試框架的開(kāi)發(fā)呢宴咧?原因如下:

1根灯、測(cè)試數(shù)據(jù)不可控径缅,無(wú)法進(jìn)行數(shù)據(jù)的初始化操作或操作較復(fù)雜

2掺栅、對(duì)于加密接口限制較多

3、擴(kuò)展能力不足纳猪,測(cè)試報(bào)告的多樣性收集及持續(xù)集成能力較弱

接口自動(dòng)化測(cè)試框架搭建:

1).unittest 是來(lái)解決用例的組織與執(zhí)行

2).HTMLTestRunner 基于unittest單元測(cè)試框的擴(kuò)展氧卧,生成HTML測(cè)試報(bào)告,可以自己定制

3).requests 發(fā)送HTTP接口的庫(kù)氏堤,主要是對(duì)post沙绝,get,PUT鼠锈, DELETE闪檬, HEAD等請(qǐng)求的模擬

步驟一:安裝Python

Python下載地址:https://www.python.org/downloads/

可自行選擇python 3.x的版本進(jìn)行安裝,當(dāng)前選擇的版本為python3.6

步驟二:安裝requests擴(kuò)展庫(kù)

可下載安裝:https://www.pypi.python.org/pypi/requests/

也可在線安裝(cmd 命令行執(zhí)行):pip install requests

步驟三: 安裝xlrd庫(kù) 和 xlwt庫(kù)?

在線安裝:pip install xlrd/xlwt

步驟四:安裝HTMLTestRunner擴(kuò)展

下載地址:http://tungwaiyip.info/software/HTMLTestRunner.html

將下載的HTMLTestRunner.py文件放在python安裝目錄的...\Lib目錄下

以下是HTMLTestRunner.py針對(duì)Python 3.x版本需要修改的地方(轉(zhuǎn)自:博客園-微微笑):

問(wèn)題一:No module named StringIO

原因:python 3 中 沒(méi)有?StringIO 這個(gè)模塊购笆。這里我們需要使用io 這個(gè)模塊來(lái)代替粗悯。

解決方法:

第94行引入的名稱要改,從 import StringIO?改成import io同欠。

相應(yīng)的样傍,539行 self.outputBuffer = StringIO.StringIO()?要改成self.outputBuffer = io.BytesIO()

問(wèn)題二:AttributeError: 'dict' object has no attribute 'has_key'

原因:python 3 字典類(lèi)型的object 已經(jīng)不支持 has_key函數(shù),我們需要使用in 來(lái)進(jìn)行遍歷铺遂。

解決方法:

定位到642行衫哥,if not rmap.has_key(cls): 需要換成 if not cls in rmap:

問(wèn)題三:'str' object has no attribute 'decode'

原因:python3 里面對(duì)字符的操作中,decode已經(jīng)拿掉了襟锐。

解決方法:

定位到772行撤逢,把 ue = e.decode('latin-1') 直接改成 ue = e 。

另外766還有類(lèi)似的uo = o.decode('latin-1')粮坞,改成 uo=o 笛质;

問(wèn)題四 :TypeError: can't concat bytes to str

原因:定位一下,報(bào)在了778行的內(nèi)容escape(uo+ue) 捞蚂。這是因?yàn)槲覀兩厦娼ouo賦值的時(shí)候妇押,走的是else流程,uo被賦值的是bytes類(lèi)型的值姓迅。 而bytes類(lèi)型不能直接轉(zhuǎn)化為str類(lèi)型敲霍。所以我們需要在前面給uo賦值的時(shí)候先將bytes類(lèi)型轉(zhuǎn)換為 str類(lèi)型。

解決方法:

修改768行的?uo = o 丁存,直接改成?uo = o.decode('utf-8') 肩杈。

另外 774還有類(lèi)似的 ?ue = e, 改成?ue = e.decode('utf-8')解寝。

問(wèn)題五:TypeError: unsupported operand type(s) for >>: 'builtin_function_or_method' and 'RPCProxy'

原因:?python3 ?不支持 print?>> sys.stderr 這種寫(xiě)法扩然,這里定義輸出流的話,采用print("This is print str",file=sys.stderr) 這種方式聋伦。

解決方法:

定位到631行夫偶,把print的語(yǔ)句修改掉界睁,原來(lái)是print >>sys.stderr, '\nTime Elapsed: %s' % (self.stopTime-self.startTime), 可改成?print('\nTime Elapsed: %s' % (self.stopTime-self.startTime),file=sys.stderr)

問(wèn)題六:TypeError: 'str' does not support the buffer interface

原因:定位一下兵拢,問(wèn)題出在118行翻斟,這里s是str類(lèi)型,我們需要把傳過(guò)來(lái)的s轉(zhuǎn)化為bytes類(lèi)型说铃。

解決方法:

定位到118行访惜,把?self.fp.write(s) 修改為?self.fp.write(bytes(s,'UTF-8')) 即可。

**********書(shū)山有路腻扇,學(xué)海無(wú)涯债热,無(wú)數(shù)個(gè)孤獨(dú)的夜晚,需要一點(diǎn)小小的成就感幼苛!**********

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末阳柔,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子蚓峦,更是在濱河造成了極大的恐慌舌剂,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,402評(píng)論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件暑椰,死亡現(xiàn)場(chǎng)離奇詭異霍转,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)一汽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)避消,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人召夹,你說(shuō)我怎么就攤上這事岩喷。” “怎么了监憎?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,483評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵纱意,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我鲸阔,道長(zhǎng)偷霉,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,165評(píng)論 1 292
  • 正文 為了忘掉前任褐筛,我火速辦了婚禮类少,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘渔扎。我一直安慰自己硫狞,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著残吩,像睡著了一般财忽。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上世剖,一...
    開(kāi)封第一講書(shū)人閱讀 51,146評(píng)論 1 297
  • 那天定罢,我揣著相機(jī)與錄音笤虫,去河邊找鬼旁瘫。 笑死,一個(gè)胖子當(dāng)著我的面吹牛琼蚯,可吹牛的內(nèi)容都是我干的酬凳。 我是一名探鬼主播,決...
    沈念sama閱讀 40,032評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼遭庶,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼宁仔!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起峦睡,我...
    開(kāi)封第一講書(shū)人閱讀 38,896評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤翎苫,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后榨了,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體煎谍,經(jīng)...
    沈念sama閱讀 45,311評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評(píng)論 2 332
  • 正文 我和宋清朗相戀三年龙屉,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了呐粘。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,696評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡转捕,死狀恐怖作岖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情五芝,我是刑警寧澤痘儡,帶...
    沈念sama閱讀 35,413評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站枢步,受9級(jí)特大地震影響谤辜,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜价捧,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評(píng)論 3 325
  • 文/蒙蒙 一丑念、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧结蟋,春花似錦脯倚、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)恍涂。三九已至,卻和暖如春植榕,著一層夾襖步出監(jiān)牢的瞬間再沧,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,815評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工尊残, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留炒瘸,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,698評(píng)論 2 368
  • 正文 我出身青樓寝衫,卻偏偏與公主長(zhǎng)得像顷扩,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子慰毅,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評(píng)論 2 353

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