python+selenium 使用unittest输出用例、创建测试套、生成测试报告

参考:https://blog.csdn.net/u011541946/article/details/70305886

1、使用unittest测试框架生成测试用例:

因为一个测试用例类中,testcase不止一个,为了保证setup和teardown函数只执行一次,故必须使用下述方法:

@classmethod
def setUpClass(cls):
@classmethod
def tearDownClass(cls):
# coding=utf-8
__author__ = 'test'

import time
import unittest


from testStub.framework.browser_engine import BrowserEngine
from testStub.pageobjects.baidu_homepage import HomePage

class BaiduTest5(unittest.TestCase):
    @classmethod
    def setUpClass(cls):
        browse = BrowserEngine(cls)
        cls.driver = browse.open_browser(cls)
    @classmethod
    def tearDownClass(cls):
        cls.driver.quit()

    def test_baidu_search1(self):
        homepage = HomePage(self.driver)
        homepage.type_search("selenium")
        homepage.send_submit_btn()
        time.sleep(2)
        homepage.get_windows_img()
        try:
            assert "selenium" in homepage.get_page_title()
            print("Test pass:")
        except Exception as e:
            print ("Test fail:",format(e))

    def test_search2(self):
        homepage = HomePage(self.driver)
        homepage.type_search('python')  # 调用页面对象中的方法
        homepage.send_submit_btn()  # 调用页面对象类中的点击搜索按钮方法
        time.sleep(2)
        homepage.get_windows_img()  # 调用基类截图方法

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

2、输出测试套、生成测试报告、把报告邮件发送给特定人员

# coding=utf-8
__author__ = 'test'

import unittest
import HTMLTestRunner
import time
import os
from testStub.testsuits.my_email_huawei import Mail
# from testStub.testsuits.test5 import BaiduTest5
# from testStub.testsuits.test7 import ViewNBAViews

#执行一:一个个的添加用例名称
# suite = unittest.TestSuite()
# suite.addTest(BaiduTest5('test_baidu_search1'))
# suite.addTest(BaiduTest5('test_search2'))
# suite.addTest(ViewNBAViews('test_view_nba_views'))

#执行二:添加一个类,但只能加载这一个类
# suite = unittest.TestSuite(unittest.makeSuite(BaiduTest5))
# suite(unittest.makeSuite(ViewNBAViews))

#执行三:添加一类的class
dis = unittest.TestLoader()
suite = dis.discover('.','test*.py') #discover方法第一个参数代表要查找的用例目录,此处的'.'代#表当前目录,第二个参数代表以test开头的所有测试用例

report_path = os.path.dirname(os.path.abspath("."))+"/test_report/" #测试报告文件地址
now = time.strftime("%Y-%m-%d-%H-%M-%S",time.localtime()) #报告名字中包含当前时间戳
HtmlFile = report_path + now +"HTMLtemplate.html" 
fp = open(HtmlFile,"wb")
if __name__ =='__main__':
    #初始化一个HTMLTestRunner实例对象,用来生成报告
    runner = HTMLTestRunner.HTMLTestRunner(stream=fp,title=u"TestStub项目的测试报告",description=u"用例测试情况") #把测试报告内容写入到上述报告文件中
    runner.run(suite)
    Mail(HtmlFile)  #测试结果也会以邮件形式发送给预期的邮箱,请参考文档:#https://blog.csdn.net/wdlnancy/article/details/87604808

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值