python UI自动化生成BeautifulReport测试报告并保存截图
前面已经写过利用BeautifulReport生成测试报告,那么接下来讲讲如何在测试报告里面保存截图
首先需要在测试用例中定义一个截图的方法:
# 截图方法
"""
os.path.abspath:返回当前目录的绝对路径
传入一个img_name,并存储到指定路径下
"""
def save_img(self, img_name):
self.driver.get_screenshot_as_file('{}/{}.png'.format(os.path.abspath('F:\\before\\lds\\img'), img_name))
然后在测试用例中挂载一个装饰器,在用例里面调用save_img方法
# -*- coding:utf-8 -*-
from selenium import webdriver
import unittest
import os
from pages.login_page import LoginPage
from BeautifulReport import BeautifulReport url = '........' class LoginPageCase(unittest.TestCase):
# 截图方法
"""
os.path.abspath:返回当前目录的绝对路径
传入一个img_name,并存储到指定路径下
"""
def save_img(self, img_name):
self.driver.get_screenshot_as_file('{}/{}.png'.format(os.path.abspath('F:\\before\\lds\\img'), img_name)) @classmethod
def setUpClass(cls):
cls.driver = webdriver.Chrome()
# 定义LoginPage的实例
cls.login_p = LoginPage(cls.driver) def setUp(self):
self.driver.maximize_window()
self.driver.get(url)
# 退出登录 清除cookie
self.driver.delete_all_cookies()
self.driver.refresh() # 截图需用到的装饰器,在用例里面调用前面定义的save_img方法
@BeautifulReport.add_test_img('测试报告')
def test_01(self):
"""调用login_page里面定义的每个步骤的方法"""
self.login_p.send_user("用户名")
self.login_p.send_pwd("12345678")
self.login_p.click_btn()
# 断言
result = self.login_p.text_is_in()
self.save_img('测试报告')
self.assertTrue(result == '测试用例失败截图') def test_02(self):
"""调用login_page里面定义的每个步骤的方法"""
self.login_p.send_user("")
self.login_p.send_pwd("123456")
self.login_p.click_btn()
# 断言
result = self.login_p.text_is_in()
self.assertTrue(result == '用户名或密码错误,请检查拼写') @classmethod
def tearDownClass(cls):
cls.driver.quit() if __name__ == '__main__':
unittest.main()
运行以上用例,用例失败就会将截图存放在测试报告中。
运行上面的测试用例,可以写个测试套件将所有的用例文件一起执行,可结合这篇文章来看:https://www.cnblogs.com/wulixia/p/11420315.html
python UI自动化生成BeautifulReport测试报告并保存截图的更多相关文章
- (appium+python)UI自动化_09_unittest批量运行测试用例&生成测试报告
前言 上篇文章[(appium+python)UI自动化_08_unittest编写测试用例]讲到如何使用unittets编写测试用例,并执行测试文件.接下来讲解下unittest如何批量执行测试文件 ...
- Python+selenium自动化生成测试报告
批量执行完用例后,生成的测试报告是文本形式的,不够直观,为了更好的展示测试报告,最好是生成HTML格式的. unittest里面是不能生成html格式报告的,需要导入一个第三方的模块:HTMLTest ...
- python UI自动化实战记录十:执行测试及测试报告
使用简单的unittest.TextTestRunner. 思路: 1 在report目录下创建当日测试报告目录 20190113 2 创建测试报告文件 f = 时间戳.txt 3 加载测试集,运行测 ...
- Python UI自动化
Python3--Uiautomator2--Pytest--Alure使用 官方源码GitHub地址:https://github.com/openatx/uiautomator2 介绍 uiaut ...
- Python—UI自动化完整实战
实战项目 均来源于互联网 测试报告2017年11月29日优化后的测试报告:https://github.com/defnngj/HTMLTestRunner 1.项目概述: 本实战已126邮箱为例子进 ...
- python selenium2示例 - 生成 HTMLTestRunner 测试报告
前言 在python selenium2自动化测试过程中,一个合适的报告是必须的,而HTMLTestRunner模块为我们提供了一个很好的报告生成功能. 什么是HTMLTestRunner HTMLT ...
- Python用HTMLTestRunner生成html测试报告
小编的主机:mac 一.引入HTMLTestRunner包 1.下载HTMLTestRunner.py,已上传到网盘,点击下载 2.将HTMLTestRunner.py复制到python安装目录的Li ...
- 利用Python半自动化生成Nessus报告
0x01 前言 Nessus是一个功能强大而又易于使用的远程安全扫描器,Nessus对个人用户是免费的,只需要在官方网站上填邮箱,立马就能收到注册号了,对应商业用户是收费的.当然,个人用户是有16个I ...
- python+selenium +unittest生成HTML测试报告
python+selenium+HTMLTestRunner+unittest生成HTML测试报告 首先要准备HTMLTestRunner文件,官网的HTMLTestRunner是python2语法写 ...
随机推荐
- Android之碎片Fragment
Fragment是个特别的存在,有点像报纸上的专栏,看起来只占据页面的一小块,但是这一小块有自己的生命周期,可以自行其是,仿佛独立王国,并且这一小块的特性无论在哪个页面,给一个位置就行,添加以后不影响 ...
- 关于c# hashtable的一个注意点
Hashtable在操作时,一定要注意一点: 当保存值时,如果使用的是字符串作为键,那么在判断是否存在此键时,必须使用字符串来检查,否则,即使是能隐式转换的值也将无法检查到,如: Hashtable ...
- IntelliJ IDEA 如何彻底删除项目的步骤
原文参考链接:https://www.jb51.net/article/129473.htm 本文介绍了IntelliJ IDEA 如何彻底删除项目的步骤,分享给大家,顺便给自己留个笔记,具体如下: ...
- 常用的一些git命令整合
一.创建一个版本库 1.mkdir xxx 2.git init 使用git init命令将这个目录变成Git可以管理的仓库 这个版本仓库创建好了,xxx目录下有一个隐藏的.git目录(里面有暂存区( ...
- Hackme.inndy -> Onepunch
Onepunch 这个题的想法必须得称妙了,需要对以往简单的认知进行一定的颠覆.特殊性在于程序的代码段(0x401000)具有写权限 1.通过修改程序代码段控制程序流程 程序中只能对任意一个字节改写一 ...
- redux基础概念及执行流程详解
一.执行流程 全局有一个公共的容器(所有组件都可以操作),我们可以在某个组件中把全局容器中的信息进行修改,而只要全局信息修改,就可以通知所有用到该信息的组件重新渲染(类似于发布订阅)==>red ...
- 2019-08-18 纪中NOIP模拟A组
T1 [JZOJ6309] 完全背包 题目描述
- Laravel中使用QRcode自制二维码
一.配置 1.在项目根目录输入命令 composer require simplesoftwareio/simple-qrcode 1.3.* 2.在config/app.php 的 provider ...
- Win7最后一天,微软开始慌了!
就在昨天(2020年1月14日),服役十年的Win 7正式退出了微软舞台,从2009推出到2019,这十年也是很多90后的青春. 当然微软官方也做了送别,当然其目的也是为了推广Win10! 甚至面对痛 ...
- 剑指offer 15.链表反转
15.链表反转 题目描述 输入一个链表,反转链表后,输出新链表的表头. PHead,pre, next分别指向当前结点, 前一个结点, 后一个结点,每次迭代先更新当前结点的指针,记录下个结点的指向,转 ...