自动化测试selenium+python——生成HTML报告,异常捕获,数据驱动

HTML报告生成

  脚本执行完后,还需要看HTML报告。
在生成报告之前要先保证自己的python目录…\Python38\Lib下有HTMLTestRunner.py


runnerall.py:

import unittest
import HTMLTestRunner
import sys,time,os
#手工添加案例到套件
def creatsuit():
    discover = unittest.defaultTestLoader.discover('../test',pattern='test*.py',top_level_dir=None)
    print(discover)
    return discover

if __name__=="__main__":
    curpath = sys.path[0]
    #取当前时间
    now = time.strftime("%Y-%m-%d-%H %M %S", time.localtime(time.time()))

    if not os.path.exists(curpath+'/resultreport'):
        os.mkdir(curpath+'/resultreport')


    filename=curpath+'/resultreport/'+now+'resultreport.html'
    with open(filename, 'wb') as fp:
        #生成HTML报告
        runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title=u'测试报告', description=u'用例执行情况', verbosity=2)
        suite = creatsuit()
        runner.run(suite)



打开生成的HTML报告:
在这里插入图片描述




异常捕获与错误截图

  用例不可能每一次运行都成功,也有不成功的时候,如果能够将错误截图保存就大大的带来了便利

    #截图
    def savescreenshot(self,driver,file_name):
        if not os.path.exists('../image'):
            os.makedirs('../image')

        now = time.strftime('%Y-%m-%d-%H %M %S',time.localtime(time.time()))
        #截图保存
        driver.get_screenshot_as_file('../image/'+now+'-'+file_name)
        time.sleep(3)



执行test_hao_123函数:
在这里插入图片描述
成功截图:
在这里插入图片描述


数据驱动

  遇到需要多次执行一个案例,如百度分别输入中文,英文,不同姓名等进行搜索,此时就要使用ddt数据驱动,在使用前首先要安装ddt

#检查自己是否安装了ddt
pip show ddt


#安装ddt
python -m pip install ddt

脚本:

from selenium import webdriver
import unittest,time
from ddt import data,ddt

@ddt
class Baidu1(unittest.TestCase):
    def setUp(self):
        self.driver=webdriver.Firefox()
        self.driver.implicitly_wait(30)
        self.base_url="https://www.baidu.com/"
        self.verificationErrors=[]
        self.accept_next_alert=True

    @data("java", "c", "python", "c++")
    def test_baidu1(self, value):
        driver=self.driver
        driver.get(self.base_url+"/")
        driver.find_element_by_id("kw").clear()
        driver.find_element_by_id("kw").send_keys(value)
        driver.find_element_by_id("su").click()
        time.sleep(3)

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

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



运行结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值