自动化测试教程(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.小结

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

相关文章
|
8天前
|
数据采集 人工智能 自然语言处理
Midscene.js:AI 驱动的 UI 自动化测试框架,支持自然语言交互,生成可视化报告
Midscene.js 是一款基于 AI 技术的 UI 自动化测试框架,通过自然语言交互简化测试流程,支持动作执行、数据查询和页面断言,提供可视化报告,适用于多种应用场景。
96 1
Midscene.js:AI 驱动的 UI 自动化测试框架,支持自然语言交互,生成可视化报告
|
1月前
|
前端开发 JavaScript 测试技术
前端自动化测试
前端自动化测试是通过使用工具和脚本自动执行测试用例的过程,旨在提高测试效率、减少人为错误,并确保Web应用的功能在不同环境和设备上的一致性与稳定性。
|
2月前
|
Java 测试技术 持续交付
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
本文重点讲解如何搭建App自动化测试框架的思路,而非完整源码。主要内容包括实现目的、框架设计、环境依赖和框架的主要组成部分。适用于初学者,旨在帮助其快速掌握App自动化测试的基本技能。文中详细介绍了从需求分析到技术栈选择,再到具体模块的封装与实现,包括登录、截图、日志、测试报告和邮件服务等。同时提供了运行效果的展示,便于理解和实践。
121 4
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
|
30天前
|
敏捷开发 测试技术 持续交付
自动化测试之美:从零开始搭建你的Python测试框架
在软件开发的马拉松赛道上,自动化测试是那个能让你保持节奏、避免跌宕起伏的神奇小助手。本文将带你走进自动化测试的世界,用Python这把钥匙,解锁高效、可靠的测试框架之门。你将学会如何步步为营,构建属于自己的测试庇护所,让代码质量成为晨跑时清新的空气,而不是雾霾中的忧虑。让我们一起摆脱手动测试的繁琐枷锁,拥抱自动化带来的自由吧!
|
2月前
|
机器学习/深度学习 SQL 安全
如何确保自动化安全测试的全面性和准确性
确保自动化安全测试的全面性和准确性,需集成多种工具(如SAST、DAST、IAST、SCA),编写自动化测试脚本,融入CI/CD流程,定期更新测试用例和工具,使用真实数据,持续维护代码,模拟攻击场景,运用机器学习,采用智能测试平台,并结合手动测试。这些策略有助于及时发现并修复安全问题,提升软件安全性。
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
智能化软件测试:AI驱动的自动化测试策略与实践####
本文深入探讨了人工智能(AI)在软件测试领域的创新应用,通过分析AI技术如何优化测试流程、提升测试效率及质量,阐述了智能化软件测试的核心价值。文章首先概述了传统软件测试面临的挑战,随后详细介绍了AI驱动的自动化测试工具与框架,包括自然语言处理(NLP)、机器学习(ML)算法在缺陷预测、测试用例生成及自动化回归测试中的应用实例。最后,文章展望了智能化软件测试的未来发展趋势,强调了持续学习与适应能力对于保持测试策略有效性的重要性。 ####
|
2月前
|
关系型数据库 MySQL Java
【Docker最新版教程】一文带你快速入门Docker常见用法,实现容器编排和自动化部署上线项目
Docker快速入门到项目部署,MySQL部署+Nginx部署+docker自定义镜像+docker网络+DockerCompose项目实战一文搞定!
|
2月前
|
安全 前端开发 测试技术
如何选择合适的自动化安全测试工具
选择合适的自动化安全测试工具需考虑多个因素,包括项目需求、测试目标、系统类型和技术栈,工具的功能特性、市场评价、成本和许可,以及集成性、误报率、社区支持、易用性和安全性。综合评估这些因素,可确保所选工具满足项目需求和团队能力。
|
2月前
|
机器学习/深度学习 SQL 安全
如何确保自动化安全测试的全面性和准确性?
如何确保自动化安全测试的全面性和准确性?
|
2月前
|
缓存 测试技术 Apache
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
61 1

热门文章

最新文章