python自动测试h_python自动化--批量执行测试之生成报告

一、生成报告

1.先执行一个用例,并生成该用例的报告

#-*- coding: utf-8 -*-

from selenium importwebdriverfrom selenium.webdriver.common.by importByfrom selenium.webdriver.common.keys importKeysfrom selenium.webdriver.support.ui importSelectfrom selenium.common.exceptions importNoSuchElementExceptionfrom selenium.common.exceptions importNoAlertPresentExceptionimportunittest, time, re,HTMLTestRunnerclassBaidy(unittest.TestCase):defsetUp(self):

self.driver=webdriver.Firefox()

self.driver.implicitly_wait(30)

self.base_url= "https://www.baidu.com"self.verificationErrors=[]

self.accept_next_alert=Truedeftest_baidy(self):

u"""百度搜索"""driver=self.driver

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

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

driver.find_element_by_id("kw").send_keys("selenium webdriver")

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

time.sleep(2)

driver.close()deftest_baidu_set(self):

u"""百度设置"""driver=self.driver#进入搜索设置页面

driver.get(self.base_url+'/gaoji/preferences.html')

menu= driver.find_element_by_id("nr")

menu.find_element_by_xpath(".//option[@value='20']").click()

driver.find_element_by_id("save").click()

driver.switch_to_alert().accept()

time.sleep(2)

driver.close()deftearDown(self):

self.driver.quit()

self.assertEqual([], self.verificationErrors)if __name__ == "__main__":#定义一个单元测试容器

testunit =unittest.TestSuite()

testunit.addTest(Baidy.test_baidy)

testunit.addTest(Baidy.test_baidu_set)#定义报告存放路径

filename = r'E:\abc\web_testing\result.html'fp= file(filename, 'wb')#定义测试报告

runner =HTMLTestRunner.HTMLTestRunner(

stream=fp,

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

description=u'用例执行情况:')#运行测试用例

runner.run(testunit)

fp.close()

View Code

2.批量执行测试用例,先构造两个用例

#-*- coding: utf-8 -*-

from selenium importwebdriverfrom selenium.webdriver.common.by importByfrom selenium.webdriver.common.keys importKeysfrom selenium.webdriver.support.ui importSelectfrom selenium.common.exceptions importNoSuchElementExceptionfrom selenium.common.exceptions importNoAlertPresentExceptionimportunittest, time, re,HTMLTestRunnerclassBaidy(unittest.TestCase):defsetUp(self):

self.driver=webdriver.Firefox()

self.driver.implicitly_wait(30)

self.base_url= "https://www.baidu.com"self.verificationErrors=[]

self.accept_next_alert=Truedeftest_baidy(self):

u"""百度搜索"""driver=self.driver

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

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

driver.find_element_by_id("kw").send_keys("selenium webdriver")

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

time.sleep(2)

driver.close()deftest_baidu_set(self):

u"""百度设置"""driver=self.driver#进入搜索设置页面

driver.get(self.base_url+'/gaoji/preferences.html')

menu= driver.find_element_by_id("nr")

menu.find_element_by_xpath(".//option[@value='20']").click()

driver.find_element_by_id("save").click()

driver.switch_to_alert().accept()

time.sleep(2)

driver.close()deftearDown(self):

self.driver.quit()

self.assertEqual([], self.verificationErrors)if __name__ == "__main__":

unittest.main()

baidy.py

#-*- coding: utf-8 -*-

from selenium importwebdriverfrom selenium.webdriver.common.by importByfrom selenium.webdriver.common.keys importKeysfrom selenium.webdriver.support.ui importSelectfrom selenium.common.exceptions importNoSuchElementExceptionfrom selenium.common.exceptions importNoAlertPresentExceptionimportunittest, time, reclassYoudao(unittest.TestCase):defsetUp(self):

self.driver=webdriver.Firefox()

self.driver.implicitly_wait(30)

self.base_url= "http://www.youdao.com"self.verificationErrors=[]

self.accept_next_alert=Truedeftest_youdao_search(self):

u"""有道搜索"""driver=self.driver

driver.get(self.base_url+ "/")#driver.find_element_by_id("query").clear()

#driver.find_element_by_id("query").send_keys(u"你好")

#driver.find_element_by_id("qb").click()

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

driver.find_element_by_id("translateContent").send_keys(u"你好")

driver.find_element_by_xpath(".//*[@id='form']/button").click()

time.sleep(2)

driver.close()deftearDown(self):

self.driver.quit()

self.assertEqual([], self.verificationErrors)if __name__ == "__main__":

unittest.main()

youdao.py

并构造测试套件:根据套件来执行这两个文件的几条用例(baidu.py两条用例,youdao.py三条用例)

代码:

#-*- coding:utf-8 -*-

importunittestimportbaidy,youdaoimportHTMLTestRunnerimporttime

testunit=unittest.TestSuite()#将测试用例加入到测试容器(套件)中

testunit.addTest(unittest.makeSuite(baidy.Baidy))

testunit.addTest(unittest.makeSuite(youdao.Youdao))#执行测试套件#runner = unittest.TextTestRunner()#runner.run(testunit)

#定义报告存放路径,支持相对路径

filename = r"E:\abc\web_testing\test_case\all_test.html"fp= file(filename, 'wb')

runner=HTMLTestRunner.HTMLTestRunner(

stream=fp,

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

description=u'用例执行情况')#执行测试用例

runner.run(testunit)

fp.close()

all_test.py

注意,报告的基本格式如下:

#定义报告存放路径,支持相对路径

filename = r"E:\abc\web_testing\test_case\all_test.html"fp= file(filename, 'wb')

runner=HTMLTestRunner.HTMLTestRunner(

stream=fp,

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

description=u'用例执行情况')#执行测试用例

runner.run(testunit)

fp.close()

生成的报告如下:

二、报告文件取当前的时间

在all_test.py中引入time,即import time,几个time的常用函数:

time.time() 获取当前时间戳

time.localtime() 当前时间的 struct_time 形式

time.ctime() 当前时间的字符串形式

time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())

将all_test.py文件改为:

...#取前面时间

now = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time()))#定义报告存放路径,支持相对路径

filename = r"E:\abc\web_testing\test_case"+ now +'all_test.html'fp= file(filename, 'wb')

runner=HTMLTestRunner.HTMLTestRunner(

stream=fp,

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

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

...

执行用例,即报错:

IOError: [Errno 22] invalid mode ('wb') or filename: 'E:\\abc\\web_testing\\test_case2016-12-21 19:43:20all_test.html'

这是因为时间不能用“:”冒号

now = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time()))

将它改成:

now = time.strftime("%Y-%m-%d-%H_%M_%S", time.localtime(time.time()))

即可

以上内容感谢虫师的相关博客和书籍

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值