Python+selenium之测试报告(2)

 1 # -*- coding: utf-8 -*-
 2 import HTMLTestReport
 3 import HTMLTestRunner
 4 import os
 5 import sys
 6 import time
 7 import unittest
 8 from selenium import webdriver
 9
10
11 class Baidu(unittest.TestCase):
12     def setUp(self):
13         self.driver = webdriver.Firefox()
14         self.driver.implicitly_wait(30)
15         self.driver.maximize_window()
16         # self.base_url = "https://www.baidu.com"
17         # self.driver.get(self.base_url)
18         self.driver.get("https://www.baidu.com")
19
20     def test_case1(self):
21         """设计测试失败case"""  # *****效果是在测试报告中显示显示出测试名称*****
22         print("========【case_0001】打开百度搜索 =============")
23         # current_time = time.strftime("%Y-%M-%D-%H-%M-%S", time.localtime(time.time()))
24         # "."表示创建的路径为当.py文件所处的地址,\\是用\将“\”转义
25         # pic_path = ‘.\\result\\image\\‘ + current_time + ‘.png‘
26         current_time = time.strftime("%Y-%m-%d-%H_%M_%S", time.localtime(time.time()))
27         pic_path = ‘.\\result\\image\\‘ + ‘2017-07-17\\‘ + current_time + ‘.png‘
28         print(pic_path)  # 打印图片的地址
29         time.sleep(2)
30         self.driver.save_screenshot(pic_path)  # 截图,获取测试结果
31         self.assertEqual(‘百度一下,你就知道‘, self.driver.title)  # 断言判断测试是否成功,判断标题是否为百度(设计失败的case)
32
33     def test_case2(self):
34         """设计测试过程中报错的case"""
35         print("========【case_0002】搜索selenium =============")
36         self.driver.find_element_by_id("kw").clear()
37         self.driver.find_element_by_id("kw").send_keys(u"selenium")
38         self.driver.find_element_by_id(‘su‘).click()
39         time.sleep(2)
40         # current_time = time.strftime("%Y-%M-%D-%H-%M-%S", time.localtime(time.time()))
41         current_time = time.strftime("%Y-%m-%d-%H_%M_%S", time.localtime(time.time()))
42         # "."表示创建的路径为当.py文件所处的地址,\\是用\将“\”转义
43         pic_path = ‘.\\result\\image\\‘+‘2017-07-17\\‘ + current_time + ‘.png‘
44         print(pic_path)  # 打印图片的地址
45         time.sleep(2)
46         self.driver.save_screenshot(pic_path)  # 截图,获取测试结果
47         self.assertIn(‘selenium‘, self.driver.title)  # 断言书写错误,导致case出错
48
49     def test_case3(self):
50         """设计测试成功的case"""
51         print("========【case_0003】 搜索梦雨情殇博客=============")
52         self.driver.find_element_by_id("kw").clear()
53         self.driver.find_element_by_id("kw").send_keys(u"梦雨情殇")
54         self.driver.find_element_by_id(‘su‘).click()
55         # current_time = time.strftime("%Y-%M-%D-%H-%M-%S", time.localtime(time.time()))
56         current_time = time.strftime("%Y-%m-%d-%H_%M_%S", time.localtime(time.time()))
57         # "."表示创建的路径为当.py文件所处的地址,\\是用\将“\”转义
58         pic_path = ‘.\\result\\image\\2017-07-17\\‘ + current_time + ‘.png‘
59         print(pic_path)  # 打印图片的地址
60         time.sleep(2)
61         self.driver.save_screenshot(pic_path)  # 截图,获取测试结果
62
63         self.assertIn(‘梦雨情殇‘, self.driver.title)
64
65     def tearDown(self):
66         self.driver.quit()
67
68
69 if __name__ == "__main__":
70     ‘‘‘生成测试报告‘‘‘
71     current_time = time.strftime("%Y-%m-%d-%H_%M_%S", time.localtime(time.time()))
72     testunit = unittest.TestSuite()
73     testunit.addTest(Baidu("test_case1"))
74     testunit.addTest(Baidu("test_case2"))
75     testunit.addTest(Baidu("test_case3"))
76     report_path = ".\\result\\SoftTestReport_" + current_time + ‘.html‘  # 生成测试报告的路径
77     fp = open(report_path, "wb")
78     runner = HTMLTestReport.HTMLTestRunner(stream=fp, title=u"自动化测试报告", description=‘自动化测试演示报告‘, tester=‘fyr‘)
79     # runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title=u"自动化测试报告", description=‘自动化测试演示报告‘)
80     runner.run(testunit)
81     fp.close()

注意事项:

1.获取当前时间的格式为:

%Y-%m-%d-%H_%M_%S 而不是 %Y-%M-%D-%H-%M-%S2.填写的截图存放地址“\”,要用转义字符“\”进行转义,变为“\\”3.runner = HTMLTestReport.HTMLTestRunner(stream=fp, title=u"自动化测试报告", description=‘自动化测试演示报告‘, tester=‘fyr‘)的测试报告如图所示:

4.runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title=u"自动化测试报告", description=‘自动化测试演示报告‘) 的效果图如图所示:


				
时间: 2024-10-05 08:06:38

Python+selenium之测试报告(2)的相关文章

转 Python Selenium设计模式-POM

前言 本文就python selenium自动化测试实践中所需要的POM设计模式进行分享,以便大家在实践中对POM的特点.应用场景和核心思想有一定的理解和掌握. 为什么要用POM 基于python selenium2开始UI级自动化测试并不是多么艰巨的任务.只需要定位到元素,执行对应的操作即可.下面我们看一下这个简单的脚本实现百度搜索. from selenium import webdriver import time driver = webdriver.Firefox() driver.i

如何写好Python+Selenium自动化?

哈喽,各位客官好,今天我给大家讲讲如何使用Python+Selenium做自动化测试,楼主在做开发测试之前做得java开发,由于种种原因,楼主转成了开发测试,接着又自学了脚本语言linux和python,对于这两门脚本,我是非常的喜欢,为什么呢,因为用起来效率太高了,所以楼主弃java转python,至于为什么,不做多解释,你懂得.接下来我将给各位讲讲如何用python+selenium自动化 1,什么是selenium selenium是一个开源的自动化测试框架,主要适用WEB测试,可以支持多

python+selenium自动化环境配置及使用实例

一.搭建环境相关地址以及相关模块下载地址 1.#各个浏览器驱动下载地址: https://www.cnblogs.com/nancyzhu/p/8589764.html 2.#sublime+python+selenium自动化配置教程: http://python.tedu.cn/know/289803.html 3.#html测试报告: https://github.com/defnngj/HTMLTestRunner         http://www.testpub.cn/t/213

《一头扎进》系列之Python+Selenium框架设计篇6 - 价值好几K的框架,呦!这个框架还真牛叉哦!!!

1. 简介 本文开始介绍如何通过unittest来管理和执行测试用例,这一篇主要是介绍unittest下addTest()方法来加载测试用例到测试套件中去.用addTest()方法来加载我们测试用例到suite中去和利用discover()方法去加载一个路径下所有的测试用例. 2. addTest()方法 这里首先介绍unittest下addTest()方法来加载测试用例到测试套件中去.为了演示效果,我在前面文章的脚本基础上,新建了一个测试脚本,这个测试脚本有一个测试用例,加上前面的测试脚本,一

Python Selenium 文件上传(二)

今天补充一种文件上传的方法 主要是因为工作中使用SendKeys方法不稳定,具体方法见: Python Selenium 文件上传(一) 这种方法直接通过命令行执行脚本时没有问题,可以成功上传,但是如果通过saltstack 远程控制执行时,SendKeys就定位不到窗口了. 所以采用这种新的方式来实现文件上传功能,并完美的解决了这个问题. 具体操作步骤如下: 1.下载工具 AutoIt及使用 AutoIt目前最新是v3版本,这是一个使用类似BASIC脚本语言的免费软件,它设计用于Windows

Python Selenium 文件上传(一)

昨天写了Web 文件下载的ui自动化,下载之后,今天就要写web 文件上传的功能了. 当然从折腾了俩小时才上传成功.下面写一下自己操作的步骤 首先网上说的有很多方法 如 input 标签的最好做了,直接定位到元素,然后再sendKeys("value")即可 <input id="file_name" class="text-1 w255" type="text" readonly="" value=

Python+selenium自动化公共逻辑步骤封装

开篇 个人博客"Python+selenium的GUI自动化实现"提到的chrome与IE浏览器调用插件已上传至51CTO下载,对应链接分别为:chrome,http://down.51cto.com/data/2171584:IE,http://down.51cto.com/data/2171585:有需要的直接下载即可:  正文 关于自动化,其实质就是用机器操作代替手工执行,从而减少人力投入.节约项目运营成功.优秀的自动化框架,可能的一个发展过程,前期自动化用例写作实现过程,可能需

python selenium 元素定位(三)

上两篇的博文中介绍了python selenium的环境搭建和编写的第一个自动化测试脚本,从第二篇的例子中看出来再做UI级别的自动化测试的时候,有一个至关重要的因素,那就是元素的定位,只有从页面上找到这个元素,我们从能对这个元素进行操作,那么我们下来看看如何来定位元素. selenium 提供了8中元素定位的方法(大家要学习元素的定位,首先可以学习下前端的基础知识,这样有利于我们学习自动化测试,大家可以看一下:http://www.runoob.com/) find_element_by_id

Python+selenium+autoIT组合 处理swfupload上传图片

Python+selenium不能直接处理swfupload图片上传的问题.需要借助鼠标模拟点击按钮,调用autoit生成的exe处理程序完成. 1,selenium 元素定位到上传按钮,模拟鼠标点击 upload_20=self.brow.find_element_by_css_selector("#SWFUpload_20") ActionChains(self.brow).click(upload_20).perform() 2,安装 autoit ,编写生成打开点击上传图片后的