自动化测试框架搭建-报告-4

      unittest在命令行可以直接输出测试结果。但是可能需要生生一个所有测试的执行结果作为报告或者把测试报告发送给相关人员,给其发送命令行日志不是一个明智的选择。他们需要格式格式更加友好的测试报告,既能够查看测试结果的概况,也能深入查看报告细节,unittest没有内置模块可以生成格式友好的报告,可以使用 Wai Yip Tung 编写的unittest 的扩展  HTMLTestRunner来实现。

    利用HTMLTestRunner来生成测试报告。创建一个包含实际吃报告的输出文件,需要配置HTMLTestRunner选项和运行测试。下载HTMLTestRunner.py 后放入到相应的python目录下,如本PC上的目录:“C:\Python27\Lib”,打开python自带的IDLE


在 Framework 工程下添加一个 report 模块,和config.py模块中的目录对应

REPORT_PATH = os.path.join(BASE_PATH, 'report')


修改test_baidu5.py模块

#coding:utf-8

"""test_baidu5.py 生成html报告的功能"""
import os
import time
import unittest
from selenium import webdriver
from selenium.webdriver.common.by import By
from Framework.utils.config import Config, DRIVER_PATH, DATA_PATH,REPORT_PATH
from Framework.utils.log import logger
from Framework.utils.file_reader1 import ExcelReader
import HTMLTestRunner


class TestBaiDu(unittest.TestCase):
    driver = None
    URL = Config().get('URL')
    excel = os.path.join(DATA_PATH,'baidu.xlsx')
    locator_kw = (By.ID, 'kw')
    locator_su = (By.ID, 'su')
    locator_result = (By.XPATH, '//div[contains(@class, "result")]/h3/a')
    print locator_result

    def sub_setUp(self):
        self.driver = webdriver.Chrome(executable_path=DRIVER_PATH + '/chromedriver.exe')
        self.driver.get(self.URL)
        print "DATA_PATH:",DATA_PATH

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

    def test_search(self):
        datas = ExcelReader(self.excel).data
        print datas
        for d in datas:
            print "d['search']",d['search']
            self.sub_setUp()
            print "self.driver",self.driver
            self.driver.find_element(*self.locator_kw).send_keys(d['search'])
            self.driver.find_element(*self.locator_su).click()
            time.sleep(1)

            #开始是find_element,由于定位的是信息是一组信息(selenium和python selenium),因此需要使用find_elements()进行定位
            links = self.driver.find_elements(*self.locator_result)
            for link in links:
                logger.info(link.text)
            self.sub_tearDown()


if __name__ == '__main__':
    #unittest.main(verbosity=2)
    #report = os.path.join(REPORT_PATH,'/report.html')
    report = REPORT_PATH + '\\report.html'
    print "report:",report
    with open(report,'wb') as f:
        runner = HTMLTestRunner(f,verbosity = 2,title = '自动化测试框架搭建',descripton = 'rhx Tests')
        runner.run(TestBaiDu('test_search'))


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值