selenium自学之路:自动化测试高级应用之生成HTM测试报告

这篇博客详细记录了作者在自学selenium过程中,如何实现自动化测试的高级应用——生成HTML测试报告。通过解决python3中has_key方法被弃用的问题,成功运行HTMLTestRunner.py,最终在指定目录下生成了测试log文件,实现了对文件夹内所有测试用例的报告生成。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

from selenium import webdriver
import unittest
from HTMLTestRunner import HTMLTestRunner

class Baidu(unittest.TestCase):
    def setUp(self):
        self.driver=webdriver.Chrome()
        self.driver.implicitly_wait(10)
        self.base_url = 'http://www.baidu.com/'

    def test_baidu_search(self):
        driver=self.driver
        driver.get(self.base_url)
        driver.find_element_by_id('kw').send_keys('HTMLTestRunner')
        driver.find_element_by_id('su').click()

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

if __name__ == '__main__':
    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()

运行时会报错:

.Traceback (most recent call last):
  File "C:/Users/pwrd/.PyCharmCE2018.2/config/scratches/seleniumtest.py", line 25, in <module>
    runner.run(testunit)
  File "C:\Users\pwrd\AppData\Local\Programs\Python\Python36\lib\HTMLTestRunner.py", line 630, in run
    self.generateReport(test, result)
  File "C:\Users\pwrd\AppData\Local\Programs\Python\Python36\lib\HTMLTestRunner.py", line 677, in generateReport
    report = self._generate_report(result)
  File "C:\Users\pwrd\AppData\Local\Programs\Python\Python36\lib\HTMLTestRunner.py", line 712, in _generate_report
    sortedResult = self.sortResult(result.result)
  File "C:\Users\pwrd\AppData\Local\Programs\Python\Python36\lib\HTMLTestRunner.py", line 642, in sortResult
    if not rmap.has_key(cls):
AttributeError: 'dict' object has no attribute 'has_key'

点击错误打开HTMLTestRunner.py文件
定位问题:

 if not rmap.has_key(cls):

由于python3删除了has_key这个方法,因此改为:

if cls not in rmap:

此时重新运行程序:

.<_io.TextIOWrapper name='<stderr>' mode='w' encoding='UTF-8'> 
Time Elapsed: 0:00:06.767387

查看文件所在目录就可以看到生成的log文件了

执行某个文件夹下的所有用例生成报告

import unittest,time
from HTMLTestRunner import HTMLTestRunner

test_dir='./test_case'
discover=unittest.defaultTestLoader.discover(test_dir,pattern='test_*.py')
if __name__ == '__main__':
    now=time.strftime("%Y-%m-%d %H_%M_%S")
    filename=test_dir+'/'+now+'result.html'
    fp=open(filename,'wb')
    runner=HTMLTestRunner(stream=fp,title='测试报告',description='用例执行情况:')
    runner.run(discover)
    fp.close()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值