testbase.testcase Package

测试用例基类模块

exception testbase.testcase.BaseTestCaseException

基类:exceptions.Exception

class testbase.testcase.Environ

基类:dict

测试环境类

用法说明: 它是一个继承了字典类型的单实例类。使用时,需先实例化该类,如: from testbase.testcase import Environ env = Environ() env保存了用例运行时的一些测试环境变量。

测试环境变量分为3个部分:

1、在测试执行时,env则存储了由测试计划定义的用例环境变量,使用方法如下:

from testbase.testcase import Environ
env = Environ()
print(env_
# 输出
env = {
    'ASSERTTEST':'True',  #注意:这里key是全字母大写
}

2、测试用例基类testbase.testcase.TestCase的构造函数中也实例化了Environ类(变量名为environ), 并且,保存了当时执行用例类的类名和类说明,使用方法如下:

#todo: 执行用例中使用evniron,用于打印用例名称和用例说明
from testbase.testcase import TestCase
class YourTest(TestCase):
    def runTest(self):
        print(self.environ['TestName'])
        print(self.environ['TestDoc'])

3、Environ还可以用于设置自定义的环境变量,使用方法如下:

from testbase.testcase import Environ
env = Environ()
env['YourEnvKey'] = "EnvValue"
print(env['YourEnvKey'])
class testbase.testcase.ITestCaseRunner

基类:object

测试用例执行器接口定义

run(testcase, testresult_factory)

执行一个测试用例

参数:

:return TestResult/TestResultCollection - 测试结果

class testbase.testcase.RepeatTestCaseRunner(case_runner_class=None)

基类:testbase.testcase.ITestCaseRunner

重复执行的用例执行器

可以通过设置测试用例的类属性为此runner实例来实现指定测试用例 执行多次。测试用例执行时可以访问成员变量iteration来判断当前是 第几次执行。

使用示例如下:

class HelloRepeatTest(TestCase):
    '示例用例'
    case_runner = RepeatTestCaseRunner()
    owner = "foo"
    timeout = 1
    status = TestCase.EnumStatus.Ready
    priority = TestCase.EnumPriority.Normal

    def run_test(self):
        self.log_info("第%s次执行测试"%self.iteration)
run(testcase, testresult_factory)

执行一个测试用例

参数:

:returns : 测试结果 :rtype TestResult/TestResultCollection - 测试结果

class testbase.testcase.SeqTestCaseRunner

基类:testbase.testcase.ITestCaseRunner

顺序执行的用例的执行器

run(testsuite, testresult_factory)

执行一个顺序执行的测试用例套

参数:

:return TestResult/TestResultCollection - 测试结果

class testbase.testcase.SeqTestSuite(testcases)

基类:testbase.testcase.TestSuite

顺序执行的测试用例套

dumps()

序列化

loads(buf)

反序列化

share_data_mgr

共享数据管理器

test_class_name

返回测试用例名字(不同测试用例的名字不同)

返回类型:str
test_doc

测试用例说明

返回类型:str
test_name

返回测试用例实例的名字

返回类型:str
test_resmgr

资源管理器

test_result

将最后一个执行的用例结果,作为Suite的结果

class testbase.testcase.TestCase(testdata=None, testdataname=None, attrs=None)

基类:object

测试用例基类

所有测试用例都最终从此基类继承。测试用例的测试脚本主要实现在"runTest()"中,

而当用例需要初始化和清理测试环境时则分别重写"preTest()"和"postTest()"函数。

class EnumPriority

基类:object

测试用例优先级枚举类

class EnumStatus

基类:object

测试用例状态枚举类

Attention:如果因为特殊原因需要暂时屏蔽某个用例的任务执行(比如有功能缺陷从而导致执行失败), 则可以先置为该字段为Suspend,等到可用的时候再将该字段置为Ready
TestClassName

返回测试用例名字(不同测试用例的名字不同)

返回类型:str
TestDoc

测试用例说明

返回类型:str
TestName

返回测试用例实例的名字

返回类型:str
add_share_data(name, value, level=0)

添加共享数据

参数:
  • name (string) -- 需要共享的数据名称
  • value -- 需要共享的数据内容
assertEqual(message, actual, expect=True)

检查实际值和期望值是否相等,不能则测试用例失败

参数:
  • message -- 检查信息
  • actual -- 实际值
  • expect -- 期望值(默认:True)
返回:

True or False

assertMatch(message, actual, expect)

检查actual和expect是否模式匹配,不匹配则记录一个检查失败

参数:
  • message (string) -- 失败时记录的消息
  • actual (string) -- 需要匹配的字符串
  • expect (string) -- 要匹配的正则表达式
返回:

匹配成果

assert_(message, value)

测试断言,如果value的值不为真,则用例失败,输出对应信息

:param message:断言失败时的提示消息 :type message: str :param value:用于判断的值 :type value: bool或

assert_equal(message, actual, expect=True)

检查实际值和期望值是否相等,不能则测试用例失败

参数:
  • message -- 检查信息
  • actual -- 实际值
  • expect -- 期望值(默认:True)
返回:

True or False

assert_match(message, actual, expect)

检查actual和expect是否模式匹配,不匹配则记录一个检查失败

参数:
  • message (string) -- 失败时记录的消息
  • actual (string) -- 需要匹配的字符串
  • expect (string) -- 要匹配的正则表达式
返回:

匹配成果

assert_types()

参数校验并设置self.qtaf_params

casedata

测试数据

返回类型:list
casedataname

测试数据标识

返回类型:str
cleanTest()

测试用例反初始化。慎用此函数,尽量将清理放到postTest里。

clean_test()

测试用例反初始化。慎用此函数,尽量将清理放到postTest里。

debug_run()

本地调试测试用例

debug_run_one(name=None)

本地调试测试用例,给数据驱动的用例使用,只执行一个用例

参数:name -- 测试数据名称,如果不指定,执行第一个数据的用例
environ

环境变量

返回类型:Environ
fail(message)

测试用例失败

参数:message (string) -- 要Log的信息
get_extra_fail_record()

当错误发生时,获取需要额外添加的日志记录和附件信息

返回类型:dict,dict - 日志记录,附件信息
get_share_data(name)

从内存中获取存储的全局数据,给当前用例使用

handle_params()

加载并设置参数,用例中可重写加载方法方式; 并显示的调用以适配不支持参数传递的方式 正常模式:不设置参数 设置数据驱动参数:只设置数据驱动参数 设置全部参数:如果传入参数,以传入参数为准,否则设置数据驱动参数

initTest(testresult)

初始化测试用例。慎用此函数,尽量将初始化放到preTest里。

参数:testresult (TestResult) -- 测试结果
init_test(testresult)

初始化测试用例。慎用此函数,尽量将初始化放到preTest里。

参数:testresult (TestResult) -- 测试结果
logInfo(info)

Log一条信息

参数:info (string) -- 要Log的信息
log_info(info)

Log一条信息

参数:info (string) -- 要Log的信息
postTest()

测试环境清理

post_test()

测试环境清理

preTest()

测试环境初始化

pre_test()

测试环境初始化

remove_share_data(name)

从内存中移除存储的共享数据

run()

本地调试测试用例

runTest()

运行测试用例

run_test()

运行测试用例

share_data_mgr

共享数据管理器

startStep(stepinfo)

开始执行一个测试步骤

参数:stepinfo (str) -- 步骤描述
start_step(stepinfo)

开始执行一个测试步骤

参数:stepinfo (str) -- 步骤描述
test_class_name

返回测试用例名字(不同测试用例的名字不同)

返回类型:str
test_dir

测试用例执行的临时目录

返回类型:str
test_doc

测试用例说明

返回类型:str
test_extra_info

测试用例额外信息

test_name

返回测试用例实例的名字

返回类型:str
test_resmgr

资源管理器

test_resources

资源管理使用接口

test_result

对应的测试结果

返回类型:TestResult
waitForEqual(message, obj, prop_name, expected, timeout=10, interval=0.5)

每隔interval检查obj.prop_name是否和expected相等,如果在timeout时间内都不相等,则测试用例失败

参数:
  • message -- 失败时的输出信息
  • obj -- 需要检查的对象
  • prop_name (string) -- 需要检查的对象的属性名,支持多层属性
  • expected -- 期望的obj.prop_name值
  • timeout -- 超时秒数
  • interval -- 重试间隔秒数
返回:

True or False

waitForMatch(message, obj, prop_name, expected, timeout=10, interval=0.5)

每隔interval检查obj.prop_name是否和正则表达式expected是否匹配,如果在timeout时间内都不相等,则测试用例失败

参数:
  • message -- 失败时的输出信息
  • obj -- 需要检查的对象
  • prop_name (string) -- 需要检查的对象的属性名, obj.prop_name返回字符串
  • expected -- 需要匹配的正则表达式
  • timeout -- 超时秒数
  • interval -- 重试间隔秒数
返回:

True or False

wait_for_equal(message, obj, prop_name, expected, timeout=10, interval=0.5)

每隔interval检查obj.prop_name是否和expected相等,如果在timeout时间内都不相等,则测试用例失败

参数:
  • message -- 失败时的输出信息
  • obj -- 需要检查的对象
  • prop_name (string) -- 需要检查的对象的属性名,支持多层属性
  • expected -- 期望的obj.prop_name值
  • timeout -- 超时秒数
  • interval -- 重试间隔秒数
返回:

True or False

wait_for_match(message, obj, prop_name, expected, timeout=10, interval=0.5)

每隔interval检查obj.prop_name是否和正则表达式expected是否匹配,如果在timeout时间内都不相等,则测试用例失败

参数:
  • message -- 失败时的输出信息
  • obj -- 需要检查的对象
  • prop_name (string) -- 需要检查的对象的属性名, obj.prop_name返回字符串
  • expected -- 需要匹配的正则表达式
  • timeout -- 超时秒数
  • interval -- 重试间隔秒数
返回:

True or False

class testbase.testcase.TestCasePriority

基类:object

测试用例优先级

Attention:此类将会被移除,请使用TestCase.EnumPriority
class testbase.testcase.TestCaseRunner

基类:testbase.testcase.ITestCaseRunner

负责执行一个测试用例

如果一个测试用例没有指定case_runner类变量,则默认都使用TestCaseRunner来执行这个用例。 测试用例可以自定义和TestCaseRunner接口兼容的runner类,并设置case_runner类变量来实现 自定义一个测试用例的执行逻辑,以下是TestCaseRunner的接口定义

run(testcase, testresult_factory)

执行一个测试用例

参数:
返回类型:

TestResult/TestResultCollection - 测试结果

setup(testcase, testresult)

测试执行初始化

参数:
  • testcase (TestCase) -- 执行的测试用例
  • testresult (TestResult) -- 测试用例结果
teardown(testcase, testresult)

测试执行清理

参数:
  • testcase (TestCase) -- 执行的测试用例
  • testresult (TestResult) -- 测试用例结果
class testbase.testcase.TestCaseStatus

基类:object

测试用例状态

Attention:此类将会被移除,请使用TestCase.EnumStatus
class testbase.testcase.TestCaseType

基类:type

测试用例元类型

class testbase.testcase.TestSuite

基类:object

测试用例套

dumps()

序列化

loads(buf)

反序列化

suite_class_name

测试套类名称

testbase.testcase.debug_run_all()

调试执行当前脚本的全部用例