testbase.testcase
Package¶
测试用例基类模块
-
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)¶ 执行一个测试用例
参数: - testcase (TestCase) -- 执行的测试用例
- testresult_factory (ITestResultFactory) -- 测试结果工厂
: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)¶ 执行一个测试用例
参数: - testcase (TestCase) -- 执行的测试用例
- testresult_factory (ITestResultFactory) -- 测试结果工厂
:returns : 测试结果 :rtype TestResult/TestResultCollection - 测试结果
-
-
class
testbase.testcase.
SeqTestCaseRunner
¶ 基类:
testbase.testcase.ITestCaseRunner
顺序执行的用例的执行器
-
run
(testsuite, testresult_factory)¶ 执行一个顺序执行的测试用例套
参数: - testsuite (SeqTestSuite) -- 执行的测试用例套
- testresult_factory (ITestResultFactory) -- 测试结果工厂
:return TestResult/TestResultCollection - 测试结果
-
-
class
testbase.testcase.
SeqTestSuite
(testcases)¶ 基类:
testbase.testcase.TestSuite
顺序执行的测试用例套
-
dumps
()¶ 序列化
-
loads
(buf)¶ 反序列化
-
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
-
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) -- 要匹配的正则表达式
返回: 匹配成果
-
casedata
¶ 测试数据
返回类型: list
-
casedataname
¶ 测试数据标识
返回类型: str
-
cleanTest
()¶ 测试用例反初始化。慎用此函数,尽量将清理放到postTest里。
-
clean_test
()¶ 测试用例反初始化。慎用此函数,尽量将清理放到postTest里。
-
debug_run
()¶ 本地调试测试用例
-
debug_run_one
(name=None)¶ 本地调试测试用例,给数据驱动的用例使用,只执行一个用例
参数: name -- 测试数据名称,如果不指定,执行第一个数据的用例
-
fail
(message)¶ 测试用例失败
参数: message (string) -- 要Log的信息
-
get_extra_fail_record
()¶ 当错误发生时,获取需要额外添加的日志记录和附件信息
返回类型: dict,dict - 日志记录,附件信息
-
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
()¶ 测试环境初始化
-
run
()¶ 本地调试测试用例
-
runTest
()¶ 运行测试用例
-
run_test
()¶ 运行测试用例
-
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
-
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)¶ 执行一个测试用例
参数: - testcase (TestCase) -- 执行的测试用例
- testresult_factory (ITestResultFactory) -- 测试结果工厂
返回类型: TestResult/TestResultCollection - 测试结果
-
-
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
()¶ 调试执行当前脚本的全部用例