python 自动化框架app_App自动化-python-Unittest框架

TestCase:

1528498-20190627173739819-591571049.png

一段Testcase代码示例:

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

'''Created on 2019-6-27@author: adminstrator'''importunittestclassUnitTestDemo1(unittest.TestCase):

def setUp(self):

print('Run before test')

def tearDown(self):

print('Run after test')

def testCase(self):

print('test case....')if __name__ == "__main__":

#import sys;sys.argv = ['', 'Test.testName']

unittest.main()

1528498-20190627173752893-537245074.png

1528498-20190627173758991-658721048.png

1528498-20190627173804665-1863306966.png

断言:

1528498-20190627182229875-461649814.png

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

'''Created on 2019-6-27@author: adminstrator'''importunittestclassAssertTestCase(unittest.TestCase):'''断言演示'''def setUp(self):

print('Run befor testcase')

def tearDown(self):

print('Run after testcase')

def testAssert(self):

num1=12num2=10self.assertEqual(num1, num2,'两个数不相等') #最后一个参数msg是当测试用例不通过时输出的内容,当断言不通过时,不会继续执行下面的内容

self.assertNotEqual(num1, num2,'两个数相等') #self.调用类的私有方法或私有变量if __name__ == "__main__":

#import sys;sys.argv = ['', 'Test.testName']

unittest.main()

TestSuite:

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

'''Created on 2019-6-28@author: adminstrator'''importunittestclassUserCase(unittest.TestCase):

def testAddUser(self):

print('add a user')

def testDelUser(self):

print('delete a user')if __name__ == "__main__":

#下面是3种将TestCase加到TestSuite中的方法

suite1=unittest.TestSuite(map(UserCase,['testAddUser','testDelUser']))

suite2=unittest.TestSuite()

suite2.addTests(map(UserCase,['testAddUser','testDelUser']))

suite3=unittest.TestSuite()

suite3.addTest(UserCase('testAddUser'))

suite3.addTest(UserCase('testDelUser'))

trunner=unittest.TextTestRunner() #通过TextTestRunner执行TestSuite

trunner.run(suite1)

TextTestRunner:

1528498-20190628111352880-538512099.png

TestCase与TestSuite单独文件的示例:

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

'''Created on 2019-6-28@author: adminstrator'''importunittestclassUnitTestDemoShow(unittest.TestCase):

def setUp(self):

print('before testcase run')

def tearDown(self):

print('after testcase run')

def testOne(self):

str1='hello'str2='hello everyone'self.assertIn(str1, str2,'判断包含')

def testTwo(self):

num1='10'num2='10'self.assertEqual(num1, num2,'判断相等')if __name__ == "__main__":

#import sys;sys.argv = ['', 'Test.testName']

unittest.main()

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

'''Created on 2019-6-28@author: adminstrator'''importunittest

from UnitTestDemoShowimportUnitTestDemoShowclassTestSuiteFile(unittest.TestCase):

def RunTestSuite(self):

testsuite=unittest.TestSuite()

testsuite.addTest(UnitTestDemoShow('testOne'))

testsuite.addTest(UnitTestDemoShow('testTwo'))

runner=unittest.TextTestRunner()

runner.run(testsuite)if __name__ == "__main__":

t=TestSuiteFile()

t.RunTestSuite()

HTMLTestRunner下载地址:

http://tungwaiyip.info/software/HTMLTestRunner.html

下载后存放在\python\Lib\site-packages下

验证是否导入成功:

1528498-20190829152057382-1692162515.png

1.原因是官网的是python2语法写的,看官手动把官网的HTMLTestRunner.py改成python3的语法:

2.修改汇总:

第94行,将import StringIO修改成import io

第539行,将self.outputBuffer = StringIO.StringIO()修改成self.outputBuffer = io.StringIO()

第642行,将if not rmap.has_key(cls):修改成if not cls in rmap:

第766行,将uo = o.decode('latin-1')修改成uo = e

第772行,将ue = e.decode('latin-1')修改成ue = e

第631行,将print >> sys.stderr, '\nTime Elapsed: %s' % (self.stopTime-self.startTime)修改成print(sys.stderr, '\nTime Elapsed: %s' % (self.stopTime-self.startTime))

生成测试报告(TestCase还是使用之前的):

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

'''Created on 2019-6-28@author: adminstrator'''importunittest

from UnitTestDemoShowimportUnitTestDemoShowimporttime,osimportHTMLTestRunnerclassHTMLReportDemo(unittest.TestCase):

def RunTestSuite(self):

testsuite=unittest.TestSuite()

testsuite.addTest(UnitTestDemoShow('testOne'))

testsuite.addTest(UnitTestDemoShow('testTwo'))

#利用HTMLTestRunner生成测试报告

reportfile="./reports/"+str(int(round(time.time()*1000)))

os.mkdir(reportfile)

filename=reportfile+"report.html"fp=open(filename,'wb')

runner=HTMLTestRunner.HTMLTestRunner(stream=fp,title=u'HTMLTestRunner测试报告',description=u'这是一个HTMLTestRunner测试报告')

result=runner.run(testsuite)if __name__ == "__main__":

t=HTMLReportDemo()

t.RunTestSuite()

1528498-20190628163353120-133697398.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值