python+selenium自动化框架(实现错误用例截图,生成测试报告)

python+selenium自动化框架(实现错误用例截图,生成测试报告)_第1张图片

一、框架介绍:

结构目录分为element、jietu、report、testcase四部分。

1、element部分

    封装一些底层的方法,存储元素查找的方法和返回结果。其中base.py用来保存底层的一些方法,screenshot.py实现错误用例自动截图,login.py实现登录模块元素的查找。

base.py:略

login.py:略

screenshot.py:

# coding:utf-8
# from selenium import webdriver

class Screenshot(object):
    """这个应该截图功能的装饰器"""
    def __init__(self, driver):
        self.driver = driver

    def __call__(self, f):
        def inner(*args):
            try:
                return f(*args)
            except:
                import time
                nowTime = time.strftime("%Y_%m_%d_%H_%M_%S")
                self.driver.get_screenshot_as_file("\\guanliantupu\\jietu\\%s.jpg" %nowTime)
                raise
        return inner

2、jietu部分

    系统自动将失败用例截图放到此目录下

3、report部分

    测试完成之后,测试报告放到此目录下

4、testcase部分

    存储测试用例,用例前面要加上我们定义的装饰器

    @screenshot.Screenshot(driver)
    def test_login(self):
        sp =login.Login(self.driver)

5、main.py

程序执行入口,自动检索testcase目录下的所有test_*py,并将结果生成html,存放再report下

import unittest
import HTMLTestRunner

#相对路径
testcase_path = ".\\testcase"
report_path = ".\\report\\report.html"
def creat_suite():
    uit = unittest.TestSuite()
    discover = unittest.defaultTestLoader.discover(testcase_path,pattern="test_*.py")
    for test_suite in discover:
        # print(test_suite)
        for test_case in test_suite:
            uit.addTest(test_case)
    return uit

suite = creat_suite()
fp = open(report_path,"wb")
runner = HTMLTestRunner.HTMLTestRunner(stream=fp,title="测试结果",description="测试搜索结果")
runner.run(suite)
fp.close()

 

你可能感兴趣的:(自动化测试)