一、框架介绍:
结构目录分为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()