pyunit生成html报告,selenium webdriver (13) -- 结合pyunit生成测试报告

测试包含测试用例设计,测试执行,测试报告输出

测试用例设计一般是静态的,以文档的方式进行存储

测试执行,可以是手动的,也可以自动化用例执行

测试报告,可以是手动的,按照一定格式的测试报告,也可以是自动化生成的,其目的是看清哪些用例测试成功,哪些用例测试失败

这边以一个小的测试为例来说明,自动化测试如何从头到尾的进行

测试目录如图

6c1555302777729326ca3efa0910d9ec.png

test_project/

.............report/ 测试报告

.............test_case/ 测试用例

.............runtest.py 测试执行

首先设计两个用例,测试百度搜索页以及有道翻译页

test_baidu.py

#coding:utf-8

import sys #编码问题

reload(sys)

sys.setdefaultencoding('utf8')

from selenium import webdriver

import unittest

import time

class MyTest(unittest.TestCase): #测试用unittest测试工具

def setUp(self):

self.driver = webdriver.Firefox()

self.driver.maximize_window()

self.driver.implicitly_wait(10)

self.base_url = "http://www.baidu.com"

def test_baidu(self):

driver = self.driver

driver.get(self.base_url+'/')

driver.find_element_by_id("kw").clear()

driver.find_element_by_id("kw").send_keys("unittest")

driver.find_element_by_id("su").click()

time.sleep(2)

title = driver.title

self.assertEqual(title, "unittest_百度搜索") #检查点是跳转页面标题

def tearDown(self):

self.driver.close()

if __name__ == '__main__': #该文件以模块方式存在,如果直接执行该文件,则文件名为'__main__',执行main函数

unittest.main()

test_youdao.py

#coding:utf-8

import sys

reload(sys)

sys.setdefaultencoding('utf8')

from selenium import webdriver

import unittest

import time

class MyTest(unittest.TestCase):

def setUp(self):

self.driver = webdriver.Firefox()

self.driver.maximize_window()

self.driver.implicitly_wait(10)

self.base_url = "http://www.youdao.com"

def test_youdao(self):

driver = self.driver

driver.get(self.base_url+"/")

driver.find_element_by_id("translateContent").clear()

driver.find_element_by_id("translateContent").send_keys("webdriver")

driver.find_element_by_id("translateContent").submit()

time.sleep(2)

title = driver.title

print title

self.assertEqual(title, "【webdriver】什么意思_英语webdriver的翻译_音标_读音_用法_例句_在线翻译_有道词典")

#检查点是跳转的页面标题

def tearDown(self):

self.driver.close()

if __name__ == '__main__':

unittest.main()

run_test.py

import unittest

import test_case.test_baidu

import test_case.test_youdao

from HTMLTestRunner import HTMLTestRunner #首先下载一个HTMLTestRunner.py放到sys.path中,可以进行导入用HTMLTestRunner产生一个HTML的测试报告

import time

#suite = unittest.TestSuite()

#

#suite.addTest(test_baidu.MyTest('test_baidu'))

#suite.addTest(test_youdao.MyTest('test_youdao'))

test_dir = './test_case' #测试用例存放路径以当前目录进行寻找

#当用例很多,并且放在很多文件中,此时如果还是用suite一个一个加用例到suite中再执行就会显得很麻烦,

#discover也是一个自动化过程,在一个路径下,自动匹配test*.py的文件作为测试用例

discover = unittest.defaultTestLoader.discover(test_dir, pattern='test*.py')

if __name__ == '__main__':

# runner = unittest.TextTestRunner()

# runner.run(suite)

now = time.strftime("%Y-%m-%d %H_%M_%S") #产生当前时间,以’年-月-日 小时_分钟_秒‘的格式

filename = './report/' + now + 'result.html' #产生文件名包括路径,这样每次产生的文件不重名

fp = open(filename, 'wb') #以写的方式打开文件

runner = HTMLTestRunner(stream=fp, #HTMLTestRunner生成实例

title='百度搜索测试报告',

description='用例执行情况:')

runner.run(discover) #跑discover中的所有用例

6c1555302777729326ca3efa0910d9ec.png

参考:

《Selenium2自动化测试实战》

《selenium python buildings release 2》

来源:oschina

链接:https://my.oschina.net/u/2303535/blog/726958

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值