栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python自动化unittest框架

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python自动化unittest框架

• unittest模块的几个属性 • unittest.TestCase: • 所有测试用例类继承的基本类。 • unittest.main(): • 可以方便的将一个单元测试模块变为可直接运行的测试脚本, main()方法使用TestLoader来搜索所有包含在该模块中以“test” 命名测试方法,开头的并自动执行他们。 • unittest.TestSuite(): • TestSuite()是用来创建测试套件的。 • unittest模块的几个属性 • unittest.TextTestRunner(): • 通过下面的run()方法来运行suite所组装的测试用例,入参为 suite测试套件。 • unittest.defaultTestLoader(): • 通过下面的discover()方法可自动根据测试目录匹配查找测试用 例文件,并将查找到的测试用例组装到测试套件 • unittest.skip(): • 装饰器,当运行用例时,有些用例可能不想执行等,可用装饰器 暂时屏蔽该条测试用例。

• Test Case类的几个重要属性: • setUp(): • 用于测试用例执行前的初始化工作。如测试用例需要登录web,可以先 实例化浏览器。 • tearDown(): • 用于测试用例执行之后的善后工作。如关闭数据库连接。关闭浏览器。 • assert*(): • 一些断言方法:在执行测试用例的过程中,最终用例是否执行通过,是 通过判断测试得到的实际结果和预期结果是否相等决定的 unittest断言方法

• TestSuit类的几个重要属性: • addTest(): • addTest()方法是将测试用例添加到测试套件中,如下方,是将 test_baidu模块下的BaiduTest类下的test_baidu测试用例添加到测试套件 • TextTestRunner类的重要属性: • run(): • 是运行测试套件的测试用例,入参为suite测试套件

• 测试脚本设计的流程 • 1、设置文件编码 • 2、定义脚本说明 • 3、导入unittest模块 • 4、定义测试类,父类为unittest.TestCase。 • 5、定义setUp()方法用于测试用例执行前的初始化工作。 • 6、定义测试用例,以“test_”开头命名的方法 • 7、定义tearDown()方法用于测试用例执行之后的善后工作。 • 8、执行测试 • 8.1、使用unittest.main()方法并自动执行它们。 • 8.2、先构造测试集,实例化测试套件,将测试用例加载到测试 套件中,实例化TextTestRunner类,使用run()方法运行测试套件 • 8.3、构造测试集,使用unittest.defaultTestLoader.discover模块 发现所有测试脚本文件,顺序和8.1一样,按照顺序执行 下载HTMLTestRunner.py包 • 将HTMLTestRunner包放进./Python/lib目录下
from selenium import webdriver
#导入Selenium的web驱动包
import unittest
#导入unittest包
import time
#时间包
from HTMLTestRunner import HTMLTestRunner
#导入生成HTML测试报告的包
class Baidu(unittest.TestCase):
    def test_baidu_search(self):
    driver = webdriver.Firefox()
    driver.get(http://www.baidu.com)
    driver.find_element_by_id('kw').send_keys('selenium')
    driver.find_element_by_id('su').click()
    time.sleep(5)
    driver.quit()




#生成单元测试流程
testunit = unittest.TestSuite()
#加载测试用例:
testunit.addTest(Baidu("test_baidu_search"))
#创建测试报告
fp=open('./result.html','wb')
runner = HTMLTestRunner(stream=fp,
title="百度搜索测试",
description="用例执行情况:“)
runner.run(testunit)
fp.close()
框架实战之测试报告的生成:

 

文件名:testVerydows.py
#encoding=UTF-8
#1.设置脚本文件的编码格式
'''
2.写明文档的基本情况
@time:2022-02-02
@author:chen
@description:
文档的解释案例
'''
#导入模块
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import Select
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
from time import sleep
from HTMLTestRunner import HTMLTestRunner
import unittest
#定义测试类,继承unittest.testcase
class baidu(unittest.TestCase):
    def setUp(self):
        self.dr = webdriver.Firefox()
        self.dr.get("https://www.baidu.com")
        sleep(2)

    def testsousuo(self):
        self.dr.find_element(By.link_TEXT,"新闻").click()
        sleep(3)
        self.dr.find_element(By.ID, "su").click()
        sleep(5)
        self.dr.switch_to.window(self.dr.window_handles[-1])
        sleep(3)
        self.dr.find_element(By.CLASS_NAME, "word").send_keys("乌克兰局势")
        self.dr.find_element(By.CLASS_NAME, "btn").click()
        sleep(4)
        #设置断言,判断搜索乌克兰局势标题含有“乌克兰局势”等字符串
        self.assertIn("乌克兰局势",self.dr.title)
    def testprint(self):
        print("运行了")
    def terdowm(self):
        self.de.quit()







文件名:main.py
import unittest
from HTMLTestRunner import HTMLTestRunner
#定义主方法
from test_jb.test_case import testVerydows
if __name__ == "__main__":
    # 8.1 直接运行main,不建议
    # unittest.main()
    # 8.2  定义测试套件,添加测试脚本用例
    testsuite = unittest.TestSuite()
    # 添加测试用例脚本
    testsuite.addTest(testVerydows.baidu("testsousuo"))
    testsuite.addTest(testVerydows.baidu("testprint"))
    # 测试报告导出
    fp = open('D:\pythonProject\test_ss\test_jb\res\result.html', 'wb')
    runner = HTMLTestRunner(stream=fp,
                            title="百度搜索测试",
                            description="用例执行情况:")
    runner.run(testsuite)
    fp.close()


显示所设置的断言结果

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/743975.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号