python3+selenium+BeautifulReport生成自动化测试报告

版权声明:本文为博主原创文章,转载请附上博文链接 https://blog.csdn.net/weixin_44065501/article/details/89464520

自动化测试,最重要的还是测试报告,下面就教大家使用BeautifulReport生成自动化测试报告
GitHub:https://github.com/TesterlifeRaymond/BeautifulReport

第一步:安装git

1、下载地址:https://git-scm.com/downloads
2、安装:按照默认安装就完事了
3、环境配置:配置(Git安装目录)/Git/cmd完整路径到环境变量path下

13136383-9f50898939f3edbb.png
配置环境变量

13136383-549121802fd7ee10.png
安装成功

第二步:安装BeautifulReport

1、cmd下进入到指定目录:(python3安装目录)\Lib\site-packages


13136383-c781401b7c01c07f.png
指定目录

13136383-f227fe85476b1a5a.png
进入指定目录

2、复制BeautifulReport到指定目录

>>>git clone https://github.com/TesterlifeRaymond/BeautifulReport
13136383-df02b70b362f94d5.png
复制BeautifulReport

13136383-f3aed1573b60da99.png
复制完成
第三步:使用BeautifulReport生成报告
13136383-22a54465324f8dc3.png
大概的一个目录

1、测试用例py:

# -*- coding: utf-8 -*-
import os
import time
import unittest
from selenium import webdriver
from dateutil.parser import parse
from BeautifulReport import BeautifulReport

class Test(unittest.TestCase):
    # 定义一个保存截图函数
    def save_img(self, img_name):       
        self.browser.get_screenshot_as_file('{}/{}.png'.format(os.path.abspath("E:/test/auto_test_local/Auto_Test/img"), img_name))
    # 启动函数,每个用例测试前,都会执行该函数
    def setUp(self):
        self.browser = webdriver.Chrome()
        self.browser.set_window_size(1920, 1080)
        self.starttime = parse(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
        print("开始测试时间:", self.starttime)
        self.browser.get("https://www.baidu.com/")
        time.sleep(3)
    
    # 结束函数,每个用例测试结束后,都会执行该函数
    def tearDown(self):
        time.sleep(3)
        self.browser.quit()
        self.endtime = parse(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
        print("测试结束时间:", self.endtime)
        totaltime = (self.endtime - self.starttime).total_seconds()
        print("总时长:", totaltime, "秒")
 
    # 测试用例1:必须以test_开头
    @BeautifulReport.add_test_img('打开登录页面', '输入账号密码', '登录')
    def test_01(self):
        u"""登录"""
        self.browser.find_element_by_xpath("//*[@id=\"u1\"]/a[7]").click()
        # 需要进行截图的时候,直接调用截图函数就ok,下同
        self.save_img('打开登录页面')
        self.browser.find_element_by_xpath("//*[@id=\"TANGRAM__PSP_10__footerULoginBtn\"]").click()
        # self.browser.find_element_by_id("TANGRAM__PSP_10__footerULoginBtn").click()
        self.browser.find_element_by_id("TANGRAM__PSP_10__userName").send_keys("userName")
        time.sleep(1)
        self.browser.find_element_by_id("TANGRAM__PSP_10__password").send_keys("password")
        time.sleep(1)
        self.save_img('输入账号密码')
        self.browser.find_element_by_id("TANGRAM__PSP_10__submit").click()
        time.sleep(1)
        self.save_img('登录')

    # 测试用例2:也是必须以test_开头
    @BeautifulReport.add_test_img('测试用例2')
    def test_02(self):
        u"""测试用例2"""
        self.save_img('测试用例2')
        time.sleep(1)

if __name__ == '__main__':
    unittest.main()

2、整合测试用例py

# -*- coding: utf-8 -*-
import unittest
from BeautifulReport import BeautifulReport

# 用例存放位置
test_case_path="E:/test/auto_test_local/Auto_Test/Test_Case"
# 测试报告存放位置
log_path='E:/test/auto_test_local/Auto_Test/Test_Result/Test_Report'
# 测试报告名称
filename='测试报告-百度'
#用例名称
description='百度登录'
# 需要执行哪些用例,如果目录下的全部,可以改为"*.py",如果是部分带test后缀的,可以改为"*test.py"
pattern="login_test.py"

if __name__ == '__main__':
    test_suite = unittest .defaultTestLoader.discover(test_case_path, pattern=pattern)
    result = BeautifulReport(test_suite)
    result.report(filename=filename,description=description,log_path=log_path)

3、执行测试:每次执行测试,只需要执行整合测试用例py就可以了

13136383-d1cbd9f8dbe59108.png
测试完成

4、测试报告展示:

13136383-996702a70d7159be.png
测试报告
13136383-1ed96b8b72400624.png

猜你喜欢

转载自blog.csdn.net/weixin_44065501/article/details/89464520