300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > python自动化测试之unittest简介讲解

python自动化测试之unittest简介讲解

时间:2019-06-20 20:04:06

相关推荐

python自动化测试之unittest简介讲解

前言

小伙伴们好呀,我们都知道java有很常见的单元测试框架Junit和TestNG,那么python里面也有单元测试框架-unittest,相当于是一个python版的junit。python里面的单元测试框架除了unittest,还有一个pytest框架。今天呢聊聊unittest框架。

​一、unittest简介

1.先导入unittest

2.用help函数查看源码解析

3.查看描述:

Python unit testing framework, based on Erich Gamma's JUnit and Kent Beck's Smalltalk testing framework.

翻译:python的单元测试框架,是基于java的junit测试框架

二、简单用法

1.可以把上图的这段代码copy出来,单独运行,看看测试结果。

Simple usage:import unittestclass IntegerArithmeticTestCase(unittest.TestCase):def testAdd(self): ## test method names begin 'test*'self.assertEqual((1 + 2), 3)self.assertEqual(0 + 1, 1)def testMultiply(self):self.assertEqual((0 * 10), 0)self.assertEqual((5 * 8), 40)if __name__ == '__main__':unittest.main()

2.第一行是导入unittest这个模块

3.class这一行是定义一个测试的类,并继承unittest.TestCase这个类

4.接下来是定义了两个测试case名称:testAdd和testMultiply

5.注释里面有句话很重要,这个要敲下黑板记笔记了:## test method names begin 'test*'

--翻译:测试用例的名称要以test开头

6.然后是断言assert,这里的断言方法是assertEqual-判断两个是否相等,这个断言可以是一个也可以是多个

7.if下面的这个unittest.main()是运行主函数,运行后会看到测试结果(跑了两个用例耗时0.000秒,两个用例都通过):

.. ---------------------------------------------------------------------- Ran 2 tests in 0.000s OK

三、小试牛刀

1.上面的两个案例是加法和乘法,我们可以写个case试下减法和除法。

2.有很多小伙伴不知道断言怎么写,断言其实就是拿实际结果和期望结果去对比,对比的方法很多,这里只是举的最简单的一个判断相等的方法。

​3.最后运行结果,第二个是失败的,失败原因:AssertionError: 3 != 3.5

F. ====================================================================== FAIL: testDivide (__main__.Test) 这里是测试除法 ---------------------------------------------------------------------- Traceback (most recent call last): File "D:/test/web-project/p.py", line 14, in testDivide self.assertEqual(result, hope) AssertionError: 3 != 3.5 ---------------------------------------------------------------------- Ran 2 tests in 0.000s FAILED (failures=1)

四、前置和后置

1.setUp:在写测试用例的时候,每次操作其实都是基于打开浏览器输入对应网址这些操作,这个就是执行用例的前置条件。

2.tearDown:执行完用例后,为了不影响下一次用例的执行,一般有个数据还原的过程,这就是执行用例的后置条件。

3.很多人执行完用例,都不去做数据还原,以致于下一个用例执行失败,这就是不喜欢擦屁股的事情,习惯不好。

4.前置和后置都是非必要的条件,如果没有也可以写pass

五、头条案例

1.打开博客首页为例,写一个简单的case

2.判断title完全等于期望结果

3.运行通过,下面会有一个绿条显示:1 test passed

​六、参考代码

# coding=utf-8from selenium import webdriverfrom selenium.webdriver.support import expected_conditions as ECimport timeimport unittestclass Blog(unittest.TestCase):def setUp(self):self.driver = webdriver.Firefox()self.driver.get("")def test_blog(self):# 交流QQ号:123456789time.sleep(3)result = EC.title_is(u'上海-迪士尼 - 头条')(self.driver)print resultself.assertTrue(result)def tearDown(self):self.driver.quit()if __name__ == "__main__":unittest.main()

总结

今天的这篇文章就分享到这里了哟,喜欢的可以点赞收藏评论加关注哟。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。