Robot Framework-失敗用例自動重跑(python3版本)

前言:

? ? ? ? 近期在用Robot Framework框架實現(xiàn)網(wǎng)站核心用例的UI自動化測試,運行過程中钦铁,自動化測試腳本容易受環(huán)境影響等因素導致腳本運行失敗羡滑,因此需要實現(xiàn)Robot Framework失敗用例自動重跑3次的功能瞳腌,減少腳本運行失敗率;在網(wǎng)上找到了實現(xiàn)該功能的資料很泊,但該資料是基于python2版本的角虫,在實踐過程中發(fā)現(xiàn)python3版本的配置與之存在一些差異,因此記錄一下實踐過程委造,以供參考戳鹅。

正文:

? ? ? ? 修改代碼如下:

1、修改文件?C:\Python36\Lib\site-packages\robot\run.py

?1)在USAGE變量里添加下面紅色內(nèi)容昏兆。

Options

=======? ?

-y --retry retry?   Set the retry times if test failed.?


2)增加導入模塊 (python3已經(jīng)默認編碼utf-8枫虏,所以不用重新設(shè)置編碼 )

from xml.dom import minidom


3)RobotFramework類增加make方法

注意事項:#savefile = open(outxml,'w',encoding='UTF-8')? ;open方法需要指定utf-8編碼爬虱,否則在讀取ouput.xml文件生成report.html會報編碼錯誤隶债。

def make(self,outxml):

? ? ? ? xmldoc = minidom.parse(outxml)

? ? ? ? suiteElementList = xmldoc.getElementsByTagName('suite')

? ? ? ? mySuite = []

? ? ? ? for suiteElement in suiteElementList:

? ? ? ? ? ? if suiteElement.childNodes is not None:

? ? ? ? ? ? ? ? for element in suiteElement.childNodes:

? ? ? ? ? ? ? ? ? ? if element.nodeName == 'test':

? ? ? ? ? ? ? ? ? ? ? ? mySuite.append(suiteElement)

? ? ? ? ? ? ? ? ? ? ? ? break

? ? ? ? for suite in mySuite:

? ? ? ? ? ? testElements = {}

? ? ? ? ? ? for element in suite.childNodes:

? ? ? ? ? ? ? ? if element.nodeName == 'test':

? ? ? ? ? ? ? ? ? ? name = element.getAttribute('name')

? ? ? ? ? ? ? ? ? ? if testElements.get(name) == None:

? ? ? ? ? ? ? ? ? ? ? ? testElements.update({name:[element]})

? ? ? ? ? ? ? ? ? ? else:

? ? ? ? ? ? ? ? ? ? ? ? testElements.get(name).append(element)

? ? ? ? ? ? for n,el in testElements.items():

? ? ? ? ? ? ? ? for i in el[0:-1]:

? ? ? ? ? ? ? ? ? ? textElement = i.nextSibling

? ? ? ? ? ? ? ? ? ? suite.removeChild(i)

? ? ? ? ? ? ? ? ? ? suite.removeChild(textElement)

? ? ? ? savefile = open(outxml,'w',encoding='UTF-8')

? ? ? ? root = xmldoc.documentElement

? ? ? ? root.writexml(savefile)

? ? ? ? savefile.close()


4)RobotFramework類的main方法

加入紅色內(nèi)容 self._make(settings.output)

2、robot/conf/settings.py

class RobotSettings(_BaseSettings) :修改_cli_opts字典跑筝,增加 'Retry':('retry',3)


3燃异、robot/model/itemlist.py

修改visit方法如下

def visit(self, visitor):

? ? ? ? for item in self:

? ? ? ? ? ? if self.__module__ == 'robot.model.testcase' and hasattr(visitor,"_context"):

? ? ? ? ? ? ? ? testStatus = ''

? ? ? ? ? ? ? ? for i in range(0,int(visitor._settings._opts['Retry'])):

? ? ? ? ? ? ? ? ? ? if testStatus != 'PASS':

? ? ? ? ? ? ? ? ? ? ? ? if item.name in visitor._executed_tests:

? ? ? ? ? ? ? ? ? ? ? ? ? ? visitor._executed_tests.pop(item.name)

? ? ? ? ? ? ? ? ? ? ? ? item.visit(visitor)

? ? ? ? ? ? ? ? ? ? ? ? testStatus = visitor._context.variables['${PREV_TEST_STATUS}']

? ? ? ? ? ? ? ? ? ? else:

? ? ? ? ? ? ? ? ? ? ? ? break

? ? ? ? ? ? else:

? ? ? ? ? ? ? ? item.visit(visitor)

4、robotide\contrib\testrunner\usages.py

? 修改USAGE字符串继蜡,增加?-y --retry retry ? ? ? ? Set the retry times if test failed.


5回俐、在命令行或者ride運行校驗失敗的測試用例,正常運行并生成測試報告稀并,則說明配置成功了仅颇。

備注:次數(shù)的配置在settings.py下retry后修改即可。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末碘举,一起剝皮案震驚了整個濱河市忘瓦,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌引颈,老刑警劉巖耕皮,帶你破解...
    沈念sama閱讀 218,546評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異蝙场,居然都是意外死亡凌停,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評論 3 395
  • 文/潘曉璐 我一進店門售滤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來罚拟,“玉大人,你說我怎么就攤上這事完箩〈退祝” “怎么了?”我有些...
    開封第一講書人閱讀 164,911評論 0 354
  • 文/不壞的土叔 我叫張陵弊知,是天一觀的道長阻逮。 經(jīng)常有香客問我,道長秩彤,這世上最難降的妖魔是什么叔扼? 我笑而不...
    開封第一講書人閱讀 58,737評論 1 294
  • 正文 為了忘掉前任事哭,我火速辦了婚禮,結(jié)果婚禮上币励,老公的妹妹穿的比我還像新娘慷蠕。我一直安慰自己,他們只是感情好食呻,可當我...
    茶點故事閱讀 67,753評論 6 392
  • 文/花漫 我一把揭開白布流炕。 她就那樣靜靜地躺著,像睡著了一般仅胞。 火紅的嫁衣襯著肌膚如雪每辟。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,598評論 1 305
  • 那天干旧,我揣著相機與錄音渠欺,去河邊找鬼。 笑死椎眯,一個胖子當著我的面吹牛挠将,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播编整,決...
    沈念sama閱讀 40,338評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼舔稀,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了掌测?” 一聲冷哼從身側(cè)響起内贮,我...
    開封第一講書人閱讀 39,249評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎汞斧,沒想到半個月后夜郁,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,696評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡粘勒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,888評論 3 336
  • 正文 我和宋清朗相戀三年竞端,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片仲义。...
    茶點故事閱讀 40,013評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡婶熬,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出埃撵,到底是詐尸還是另有隱情,我是刑警寧澤虽另,帶...
    沈念sama閱讀 35,731評論 5 346
  • 正文 年R本政府宣布暂刘,位于F島的核電站,受9級特大地震影響捂刺,放射性物質(zhì)發(fā)生泄漏谣拣。R本人自食惡果不足惜募寨,卻給世界環(huán)境...
    茶點故事閱讀 41,348評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望森缠。 院中可真熱鬧拔鹰,春花似錦、人聲如沸贵涵。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽宾茂。三九已至瓷马,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間跨晴,已是汗流浹背欧聘。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留端盆,地道東北人怀骤。 一個月前我還...
    沈念sama閱讀 48,203評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像焕妙,于是被迫代替她去往敵國和親蒋伦。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,960評論 2 355

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

  • 1访敌、文件robot\conf\settings.py 默認重試三次 在'RunEmptySuite' :...
    吳龍華Tester閱讀 995評論 0 0
  • Robotframwork 自帶的重試參數(shù)-R Note:out.html路徑凉敲,同時要保證有l(wèi)og.html文件和...
    五娃兒閱讀 1,761評論 1 1
  • pyspark.sql模塊 模塊上下文 Spark SQL和DataFrames的重要類: pyspark.sql...
    mpro閱讀 9,456評論 0 13
  • 我愿化身石橋 歷經(jīng)四季輪回 相思橋上說相思 風雨廝守待回首 阿木對我說:我喜歡上了一女子。 我:是怎樣的一個女子寺旺?...
    阿木石橋閱讀 211評論 0 0
  • 一棵蘋果樹爷抓,終于結(jié)果了。 第一年阻塑,它結(jié)了10個蘋果蓝撇,9個被拿走,自己得到1個陈莽。對此渤昌,蘋果樹憤憤不平,于是自斷經(jīng)脈走搁,...
    桔藍_8650閱讀 76評論 0 0