自动化测试教程(17)生成测试报告

简介: 631行print >>sys.stderr, ‘\nTime Elapsed: %s’ % (self.stopTime-self.startTime)改成:print (sys.stderr, ‘\nTime Elapsed: %s’ %(self.stopTime-self.startTime))我们之前的教程学会了,读取csv文件的方法,还有数据驱动,discover方法的使用,然后我们下面的内容讲解一下自动化的高级,这一小节我们学习一下自动化测试的生成测试报告。

文章目录

1.任务目标

我们之前的教程学会了,读取csv文件的方法,还有数据驱动,discover方法的使用,然后我们下面的内容讲解一下自动化的高级,这一小节我们学习一下自动化测试的生成测试报告。

2.测试报告

HTMLTestRunner,这是一个能生成一个HTML格式的网页报告的模块。我们使用这个模块呢,就可以直接来看测试用例的执行效果。下载后需要做一些修改来支持python3(附带文件中有修改好可直接使用的文件):94行import StringIO改成import io。

539行self.outputBuffer = StringIO.StringIO() 改成: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目录里面即可。

3.任务实操

3.1任务目录

3.2任务代码

读取csv文件代码test02

import csv
def rend():
    ps = r"E:\rest.csv"
    stem = open(ps, "r")
    tat = csv.reader(stem)
    list = []
    i = 0
    for row in tat:
        if i != 0:
            list.append(row)
        i = i + 1
    return list
if __name__ == '__main__':
    arr = rend()
    for row in arr:
        print(row)

test04包下驱动代码

import time
from selenium import webdriver
import ddt
import unittest
from test02 import rend
@ddt.ddt
class test_ds(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Chrome()
        self.driver.maximize_window()
        self.driver.implicitly_wait(3)
    stem = rend()
    @ddt.data(*stem)
    def test_kd(self, list):
        try:
            self.driver.get("http://test.pandabrother.cn/gpracticef/my/login.html")
            self.driver.find_element_by_class_name('form-control').send_keys("liufengning")
            self.driver.find_element_by_id('input-password').send_keys("123456")
            self.driver.find_element_by_xpath('/html/body/div/div/div[1]/section/form/div[3]/button').click()
            self.driver.find_element_by_xpath('//*[@id="sidebar-menu"]/div/ul/li/a').click()
            self.driver.find_element_by_xpath('//*[@id="sidebar-menu"]/div/ul/li/ul/li[2]/a').click()
            self.driver.find_element_by_xpath(
                '/html/body/div[1]/div/div[3]/div/div[3]/div[2]/div/form/button[2]').click()
            self.driver.find_element_by_xpath('//*[@id="input-name"]').send_keys(list[0])
            self.driver.find_element_by_xpath('//*[@id="btn-save"]').click()
            emte = self.driver.find_element_by_id('out-tip').text
            self.assertEqual(emte, list[1])
            print("用例执行成功")
        except:
            print("用例执行失败")
            times = time.strftime("%Y-%m-%d-%H-%M-%S")
            self.driver.get_screenshot_as_file(r"E:\," + times + ".png")
    def tearDown(self):
        self.driver.quit()
if __name__ == '__main__':
    unittest.main()

生成测试报告的代码

# 生成测试报告
import unittest
# 引入HTMLTestRunner 生成测试报告的包
from HTMLTestRunner import HTMLTestRunner
import time
test_dir = "./text04"
ds = unittest.defaultTestLoader.discover(test_dir, pattern="test04.py")
if __name__ == '__main__':
    # 存放测试报告的路径
    report_dir = "./test_report"
    # 自动生成测试报告的时间
    now = time.strftime("%Y-%m-%d-%H-%M-%S")
    # 测试报告的名字
    report_name = report_dir + '/' + now + "report.html"
    # 获取路径并生成测试报告
    with open(report_name, 'wb') as f:
        ruun = HTMLTestRunner(stream=f, title="报告", description="HR")
        ruun.run(ds)
    # 关闭程序
    f.close()

3.3执行结果

运行结果

4.自动化测报告代码

4.1生成测试报告代码

这个代码他是自动生成的格式是html格式

4.2测试报告打开后结果

5.小结

我们本小结学习了生成测试报告,测试报告便于我们提交,再以后做项目的时候,都是以报告的形式提交的。

相关文章
|
1天前
|
数据采集 前端开发 测试技术
《手把手教你》系列技巧篇(三十一)-java+ selenium自动化测试- Actions的相关操作-番外篇(详解教程)
【4月更文挑战第23天】本文介绍了网页中的滑动验证码的实现原理和自动化测试方法。作者首先提到了网站的反爬虫机制,并表示在本地创建一个没有该机制的网页,然后使用谷歌浏览器进行验证。接着,文章详细讲解了如何使用WebElement的click()方法以及Action类提供的API来模拟鼠标的各种操作,如右击、双击、悬停和拖动。
6 2
|
2天前
|
Web App开发 数据采集 Java
《手把手教你》系列技巧篇(三十)-java+ selenium自动化测试- Actions的相关操作下篇(详解教程)
【4月更文挑战第22天】本文介绍了在测试过程中可能会用到的两个功能:Actions类中的拖拽操作和划取字段操作。拖拽操作包括基本讲解、项目实战、代码设计和参考代码,涉及到鼠标按住元素并将其拖动到另一个元素上或指定位置。划取字段操作则介绍了如何在一段文字中随机选取一部分,包括项目实战、代码设计和参考代码。此外,文章还提到了滑动验证的实现,并提供了相关的代码示例。
31 2
|
2天前
|
测试技术 API 网络架构
Python的api自动化测试 编写测试用例
【4月更文挑战第18天】使用Python进行API自动化测试,可以结合`requests`库发送HTTP请求和`unittest`(或`pytest`)编写测试用例。以下示例: 1. 安装必要库:`pip install requests unittest` 2. 创建`test_api.py`,导入库,定义基础URL。 3. 创建继承自`unittest.TestCase`的测试类,包含`setUp`和`tearDown`方法。 4. 编写测试用例,如`test_get_users`,检查响应状态码和内容。 5. 运行测试:`python -m unittest test_api.py`
12 2
|
7天前
|
前端开发 JavaScript Java
《手把手教你》系列技巧篇(二十五)-java+ selenium自动化测试-FluentWait(详细教程)
【4月更文挑战第17天】其实今天介绍也讲解的也是一种等待的方法,有些童鞋或者小伙伴们会问宏哥,这也是一种等待方法,为什么不在上一篇文章中竹筒倒豆子一股脑的全部说完,反而又在这里单独写了一篇。那是因为这个比较重要,所以宏哥专门为她量身定制了一篇。FluentWait是Selenium中功能强大的一种等待方式,翻译成中文是流畅等待的意思。在介绍FluentWait之前,我们来讨论下为什么需要设置等待,我们前面介绍了隐式等待和显式等待。
30 3
|
9天前
|
Java 测试技术 定位技术
《手把手教你》系列技巧篇(二十三)-java+ selenium自动化测试-webdriver处理浏览器多窗口切换下卷(详细教程)
【4月更文挑战第15天】本文介绍了如何使用Selenium进行浏览器窗口切换以操作不同页面元素。首先,获取浏览器窗口句柄有两种方法:获取所有窗口句柄的集合和获取当前窗口句柄。然后,通过`switchTo().window()`方法切换到目标窗口句柄。在项目实战部分,给出了一个示例,展示了在百度首页、新闻页面和地图页面之间切换并输入文字的操作。最后,文章还探讨了在某些情况下可能出现的问题,并提供了一个简单的本地HTML页面示例来演示窗口切换的正确操作。
38 0
|
17天前
|
测试技术 C语言
网站压力测试工具Siege图文详解
网站压力测试工具Siege图文详解
26 0
|
1月前
|
JavaScript jenkins 测试技术
这10款性能测试工具,收藏起来,测试人的工具箱!
这10款性能测试工具,收藏起来,测试人的工具箱!
|
1月前
|
人工智能 监控 测试技术
利用AI辅助工具提升软件测试效率
【2月更文挑战第17天】 随着科技的不断发展,人工智能(AI)在各个领域的应用越来越广泛。在软件测试领域,AI技术也发挥着重要作用。本文将探讨如何利用AI辅助工具提升软件测试效率,包括自动化测试、智能缺陷识别和预测等方面。通过引入AI技术,软件测试过程将变得更加高效、准确和可靠。
194 1
|
1月前
|
Web App开发 前端开发 测试技术
探索自动化测试工具:Selenium的威力与应用
探索自动化测试工具:Selenium的威力与应用
探索自动化测试工具:Selenium的威力与应用
|
1月前
|
测试技术
现代软件测试中的自动化工具与挑战
传统软件测试面临着越来越复杂的系统架构和不断增长的测试需求,自动化测试工具应运而生。本文将探讨现代软件测试中自动化工具的应用和挑战,深入分析其优势与局限性,为软件测试领域的发展提供思路和启示。