zoukankan      html  css  js  c++  java
  • python3+selenium+BeautifulReport生成自动化测试报告

    https://www.jianshu.com/p/3d2c0e092ffb

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

    第一步:安装git

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

     
    配置环境变量

     
    安装成功
    第二步:安装BeautifulReport

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


     
    指定目录

     
    进入指定目录

    2、复制BeautifulReport到指定目录

    >>>git clone https://github.com/TesterlifeRaymond/BeautifulReport
    
     
    复制BeautifulReport

     
    复制完成
    第三步:使用BeautifulReport生成报告
     
    大概的一个目录

    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就可以了

     
    测试完成

    4、测试报告展示:

     
    测试报告


    作者:车陂IT仔
    链接:https://www.jianshu.com/p/3d2c0e092ffb
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 相关阅读:
    Python异常处理
    python抽象类
    python传参*和**的区别
    python 多重继承构造函数调用顺序
    linux 自启动 | 三种方式自启动
    Linux 项目 shell 自动获取报告本机IP (1) | 通过shell 自动获取报告本机IP
    Go 基础学习笔记 (5)| 数据类型说明与使用
    GO 基础学习笔记(4)| 参数传递
    生活问题 | 对华为畅玩手机5X进行升级
    markdown 语法
  • 原文地址:https://www.cnblogs.com/tsgxj/p/12619443.html
Copyright © 2011-2022 走看看