testbase.testresult Package

测试结果模块

参考logging模块的设计,使用示例如下:

result = TestResult()
result.add_handler(StreamResultHandler())
result.begin_test()
result.start_step('a step')
result.info('test')
result.end_test()

其中result.info接口可以传record扩展信息,比如:

result.error('', '异常发生', traceback=traceback.format_exc())

同logger一样,TestResult对象保证对所有的ITestResultHandler的调用都是线程安全的,可以通过实现 ITestResultHandler来实现一个新的Handler,详细请参考ITestResultHandler接口

class testbase.testresult.EmptyResult

基类:testbase.testresult.TestResultBase

不输出

class testbase.testresult.EnumLogLevel

基类:object

日志级别

class testbase.testresult.HtmlResult(testcase)

基类:testbase.testresult.JSONResult

html test result

class testbase.testresult.JSONResult(testcase)

基类:testbase.testresult.TestResultBase

JSON格式的结果

handle_log_record(level, msg, record, attachments)

处理一个日志记录

参数:
  • level (string) -- 日志级别,参考EnumLogLevel
  • msg (string) -- 日志消息
  • record (dict) -- 日志记录
  • attachments (dict) -- 附件
handle_step_begin(msg)

处理一个测试步骤的开始

参数:msg (string) -- 测试步骤名称
handle_step_end(passed)

处理一个测试步骤的结束

参数:passed (boolean) -- 测试步骤是否通过
handle_test_begin(testcase)

处理一个测试用例执行的开始

参数:testcase (TestCase) -- 测试用例
handle_test_end(passed)

处理一个测试用例执行的结束

参数:passed (boolean) -- 测试用例是否通过
class testbase.testresult.StreamResult(stream=<open file '<stdout>', mode 'w'>)

基类:testbase.testresult.TestResultBase

测试用例stream输出

handle_log_record(level, msg, record, attachments)

处理一个日志记录

参数:
  • level (string) -- 日志级别,参考EnumLogLevel
  • msg (string) -- 日志消息
  • record (dict) -- 日志记录
  • attachments (dict) -- 附件
handle_step_begin(msg)

处理一个测试步骤的开始

参数:msg (string) -- 测试步骤名称
handle_step_end(passed)

处理一个测试步骤的结束

参数:passed (boolean) -- 测试步骤是否通过
handle_test_begin(testcase)

处理一个测试用例执行的开始

参数:testcase (TestCase) -- 测试用例
handle_test_end(passed)

处理一个测试用例执行的结束

参数:passed (boolean) -- 测试用例是否通过
class testbase.testresult.TestResultBase

基类:object

测试结果基类

此类的职责如下: 1、提供测试结果基本接口 2、保证线程安全 2、测试是否通过之逻辑判断

begin_step(msg)

开始一个测试步骤

参数:msg (string) -- 测试步骤名称
begin_test(testcase)

开始执行测试用例

参数:testcase (TestCase) -- 测试用例
begin_time

测试用例开始时间

返回:float
debug(msg, record=None, attachments=None)

处理一个DEBUG日志

end_test()

结束执行测试用例

end_time

测试用例结束时间

返回:float
error(msg, record=None, attachments=None)

处理一个ERROR日志

exception(msg, record=None, attachments=None)

处理一个DEBUG日志

failed_info

测试用例失败时的执行状况

返回:str
failed_reason

用例测试不通过的错误原因

返回:str
handle_log_record(level, msg, record, attachments)

处理一个日志记录

参数:
  • level (string) -- 日志级别,参考EnumLogLevel
  • msg (string) -- 日志消息
  • record (dict) -- 日志记录
  • attachments (dict) -- 附件
handle_step_begin(msg)

处理一个测试步骤的开始

参数:msg (string) -- 测试步骤名称
handle_step_end(passed)

处理一个测试步骤的结束

参数:passed (boolean) -- 测试步骤是否通过
handle_test_begin(testcase)

处理一个测试用例执行的开始

参数:testcase (TestCase) -- 测试用例
handle_test_end(passed)

处理一个测试用例执行的结束

参数:passed (boolean) -- 测试用例是否通过
info(msg, record=None, attachments=None)

处理一个INFO日志

log_record(level, msg, record=None, attachments=None)

处理一个日志记录

参数:
  • level (string) -- 日志级别,参考EnumLogLevel
  • msg (string) -- 日志消息
  • record (dict) -- 日志记录
  • attachments (dict) -- 附件
passed

测试是否通过

返回:True or False
testcase

对应的测试用例 :returns: TestCase

warning(msg, record=None, attachments=None)

处理一个WARNING日志

class testbase.testresult.TestResultCollection(results, passed)

基类:list

测试结果集合

passed

测试是否通过

返回:boolean
class testbase.testresult.TestResultType

基类:object

扩展用例状态

class testbase.testresult.XmlResult(testcase)

基类:testbase.testresult.TestResultBase

xml格式的测试用例结果

file_path

xml文件路径

返回:str
handle_log_record(level, msg, record, attachments)

处理一个日志记录

参数:
  • level (string) -- 日志级别,参考EnumLogLevel
  • msg (string) -- 日志消息
  • record (dict) -- 日志记录
  • attachments (dict) -- 附件
handle_step_begin(msg)

处理一个测试步骤的开始

参数:msg (string) -- 测试步骤名称
handle_step_end(passed)

处理一个测试步骤的结束

参数:passed (boolean) -- 测试步骤是否通过
handle_test_begin(testcase)

处理一个测试用例执行的开始

参数:testcase (TestCase) -- 测试用例
handle_test_end(passed)

处理一个测试用例执行的结束

参数:passed (boolean) -- 测试用例是否通过
toxml()

返回xml文本

:returns string - xml文本

testbase.testresult.smart_text_by_lines(s)

将任意字符串转换为UTF-8编码