Python自动化测试之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 unittest
    
        class 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-8
from selenium import webdriver
from selenium.webdriver.support import expected_conditions as EC
import time
import unittest

class Blog(unittest.TestCase):

def setUp(self):
self.driver = webdriver.Firefox()
self.driver.get("https://mp.toutiao.com")

def test_blog(self):
# 交流QQ号:123456789
time.sleep(3)
result = EC.title_is(u'上海-迪士尼 - 头条')(self.driver)
print result
self.assertTrue(result)

def tearDown(self):
self.driver.quit()

if __name__ == "__main__":
unittest.main()

最后:下面是配套学习资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!【100%无套路免费领取】

软件测试面试小程序

被百万人刷爆的软件测试题库!!!谁用谁知道!!!全网最全面试刷题小程序,手机就可以刷题,地铁上公交上,卷起来!

涵盖以下这些面试题板块:

1、软件测试基础理论 ,2、web,app,接口功能测试 ,3、网络 ,4、数据库 ,5、linux

6、web,app,接口自动化 ,7、性能测试 ,8、编程基础,9、hr面试题 ,10、开放性测试题,11、安全测试,12、计算机基础

  全套资料获取方式:点击下方小卡片自行领取即可

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值