介面自動化之unittest初探

2022-06-22 06:39:10 字數 2750 閱讀 4727

#

!/usr/bin/python3

#-*- coding: utf-8 -*-

#@time :2018/12/7 11:03

#@author :yosef-夜雨聲煩

#@email :[email protected]

#@file: :model.py

#@software :pycharm community edition

"""unittest模組總結:

關於這個模組,可沒少讓我吃苦頭啊。以前自己學習這個模組的時候,就不是很懂,這兩天我就一直在鑽研這個東西,總算是略有收穫。

下面的是我總結的模板,僅供參考。在學習po模式之後,建議把下面模板分開幾個py檔案。

做下面demo發現的新問題:不能把斷言放到try語句中並且是可以被except的異常類包含的,否則就不能通過斷言來設定測試用例的結果。

然後突然想到raise語句,except語句執行完畢之後可以再丟擲異常,這樣就能被定義為fail

"""import

unittest

import

htmltestrunner

import

time

class

testcases(unittest.testcase):

defsetup(self):

print("

每一條case執行之前都會執行這個方法")

defteardown(self):

print("

每一條case執行之後都會執行這個方法\n")

deftest_testcase1(self):

print("

這是一條測試用例case1")

a = "

hello

"try

: self.asserttrue(a.isalpha())

print("

測試通過")

except

exception as e:

print("

出錯啦,錯誤結果是%s

" %e)

print("

failed")

raise

e

deftest_testcase2(self):

print("

這是一條測試用例case2")

b = "

123"

try:

self.asserttrue(b.isalpha())

print("

測試通過")

except

exception as e:

print("

出錯啦,錯誤結果是%s

" %e)

print("

failed")

raise

e

deftest_testcase3(self):

print("

這是一條測試用例case3")

c = "

"try

: self.asserttrue(c.isalpha())

print("

測試通過")

except

exception as e:

print("

出錯啦,錯誤結果是%s

" %e)

print("

failed")

raise

e'''

if __name__ == "__main__":

unittest.main()

寫上這段**可以在命令列直接執行model.py,而且用例全部執行

'''"""

載入測試用例,方法不僅這種,還有利用loader的方法,大佬們自行試下

loader = unittest.testloader()

suite.addtest(loader.loadtestsfromtestcase(testcases))

or suite.addtest(loader.loadtestsfrommodule(model))

"""suite =unittest.testsuite()

#suite.addtest("test_testcase2") # 這裡我寫錯了,要加上模組

suite.addtest(testcases('

test_testcase3'))

"""指定測試報告的路徑並且定義報告名稱格式

"""report_dir = "

../test report

"now = time.strftime("

%y-%m-%d %h-%m-%s")

reportname = report_dir + "

/" + now + "

test report.html

""""

執行用例並生成測試報告

"""with open(reportname,

"wb+

") as file:

runner = htmltestrunner.htmltestrunner(file, 2, title="

model test report",

description="

hello testers! this is the description of model test""

report")

runner.run(suite)

介面自動化 unittest

unittest unittest框架會把以test 開頭的例項方法識別為用例,同時會自動執行 如果不是test 方法,那麼不會被當做測試用例執行 一 匯入unittest import unittest 系統內建模組,不需要安裝 二 定義類 classtestmulti unittest.test...

App自動化測試之unittest入門

import unittest class teststringmethods unittest.testcase def test upper self self.assertequal foo upper foo def test isupper self self.asserttrue foo...

unittest介面自動化測試第三頁

封裝日誌使用方法 import logging 日誌位址引數loginfopath loginfopath r d pycharm pycharm pure book pycharmprojects untetest inte ce log info logs.txt class logprint ...