首页 > 技术文章 > web测试应用实战

xiao-qing 2017-11-17 18:42 原文

案例:使用百度搜索关键词“selenium 自学网” 并打开课程页面

from selenium import webdriver
from time import sleep
import unittest
class Test_baidu(unittest.TestCase):
    def setUp(self):
        self.driver=webdriver.Firefox()
        self.driver.implicitly_wait(10)
        self.driver.get("https://www.baidu.com")

    def test_baidu(self):
        driver=self.driver
        driver.find_element_by_id("kw").clear()
        driver.find_element_by_id("kw").send_keys("selenium 自学网")
        driver.find_element_by_id("su").click()
        driver.implicitly_wait(5)

        title=driver.title
        self.assertEqual(title,"selenium 自学网_百度搜索")

        driver.find_element_by_partial_link_text("Selenium自动化").click()
        sleep(5)

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

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

测试报告生成

自动化测试执行完成之后,我们需要生成测试报告来查看测试结果,使用HTMLTestRunner模块可直接生成html格式的测试报告

下载地址:

http://tungwaiyip.info/software/HTMLTestRunner.html

下载后的修改:

94行引入名称要改,从import StringIO 改成 import io。

539行self.outputBuffer = StringIO.String()要改成self.outputBuffer = io.StringIO()

631行

print >>sys.stderr, '\nTime Elapsed: %s' % (self.stopTime-self.startTime) 改成print(sys.stderr, '\nTime Elapsed: %s' % (self.stopTime-self.startTime))

642行,if not rmap.has_key(cls):换成if not cls in rmap:

 

766行uo = o.decode('latin-1')改成uo=o

772行ue = e.decode('latin-1')改成ue=e

存放路径:

将修改完成的模块存放在Python路径下lib目录里面即可

 

import unittest
from HTMLTestRunner import HTMLTestRunner
import time
#定义测试用例路径
test_dir='./'
discover=unittest.defaultTestLoader.discover(test_dir,pattern='test*.py')

if __name__=='__main__':
    # 存放报告的文件夹
    report_dir='./test_report'
    # 报告命名时间格式化
    now=time.strftime("%Y-%m-%d %H_%M_%S ")
    #报告文件完整路径
    report_name=report_dir+'/'+now+'result.html'

    #打开文件在报告中写入测试结果
    with open(report_name,'wb') as f:
        runner=HTMLTestRunner(stream=f,title="Test Report",description='Test case result')
    # runner=unittest.TextTestRunner()
    runner.run(discover)
    f.close()

 

 

测试报告美化

下载地址:https://github.com/easonhan007/HTMLTestRunner

下载后也需要和前面的内容一样修改,然后放置到python安装路径的Lib的文件夹里

import unittest
from BSTestRunner import BSTestRunner
import time
#定义测试用例路径
test_dir='./'
discover=unittest.defaultTestLoader.discover(test_dir,pattern='test*.py')

if __name__=='__main__':
    # 存放报告的文件夹
    report_dir='./test_report'
    # 报告命名时间格式化
    now=time.strftime("%Y-%m-%d %H_%M_%S ")
    #报告文件完整路径
    report_name=report_dir+'/'+now+'result.html'

    #打开文件在报告中写入测试结果
    with open(report_name,'wb') as f:
        runner=BSTestRunner(stream=f,title="Test Report",description='Test case result')
        runner.run(discover)
    f.close()

 

推荐阅读