Python之TestLink篇

TestLink是一款基于web的测试用例管理系统,功能相对齐全,例如

  • 测试项目管理
  • 产品需求管理
  • 测试用例管理
  • 测试计划管理
  • 测试用例的创建、管理和执行
  • 测试报告

1. 安装

pip3 install -i https://pypi.doubanio.com/simple/ TestLink-API-Python-client

2.连接testlink

获取testlink秘钥,用于做python和testlink之间进行连接。

  1. 登陆testlink
  2. 点击我的设置
  3. 找到api接口,点击生成,复制下来即可,替换到下方代码中
 import testlink
# 此处请将192.168.0.233替换为自己TestLink的访问地址即可
url = 'http://192.168.0.233/testlink/lib/api/xmlrpc/v1/xmlrpc.php'
# 此处将密钥更换为个人秘钥即可
key = '6250b9d9cb5fc7c982c4c35adffaaf52'
tlc = testlink.TestlinkAPIClient(url, key)
print(tlc)

此时打印出的tlc就能看到作者和版本的一些信息
在这里插入图片描述

3. 获取类常用API

3.1 获取所有的项目
# 获取TestLink下所有的项目,返回为包含字典的列表
# 字典中包含各个项目的基本信息,如测试项目ID、APIKey等
projects = tlc.getProjects()
print(projects)
3.2 通过项目名称获取项目ID
# 通过项目名称获取项目ID,返回数据为项目ID
project_id = tlc.getProjectIDByName(项目名称)
print(project_id)

3.3 通过项目名称获取项目基本信息
# 通过项目名称获取项目基本信息,返回数据格式为字典
# 数据中包含项目ID、项目名称、项目描述、APIKey等信息
project = tlc.getTestProjectByName(项目名称)
print(project)
3.4 通过项目ID获取项目下所有第一层套件
# 通过项目ID获取项目下的所有第一层套件,返回的数据格式为包含字典的列表
# 字典为每个套件的基本信息,如套件ID、套件名称、node_type_id等信息
suite= tlc.getFirstLevelTestSuitesForTestProject(项目ID)
print(suite)
3.5 通过项目名称和计划名称获取测试计划
# 通过项目名称和计划名称获取测试计划,返回数据的类型为包含字典的列表
# 列表中包含计划基本信息,如 测试计划ID、项目ID、活动、公共、是否打开等信息
test_plan = tlc.getTestPlanByName(项目名称, 计划名称)
print(test_plan)
3.6 通过项目ID获取项目下的所有测试计划
# 通过项目ID获取项目下的所有测试计划,返回的数据格式为包含字典的列表
# 字典为每项测试计划的基本数据,如测试计划ID、测试计划名称、是否公共、是否活动等
test_plans = tlc.getProjectTestPlans(项目ID)
print(test_plans)
3.7 通过测试计划ID获取计划下的所有版本信息
# 通过测试计划ID获取计划下的所有版本,返回的数据格式为包含字典的列表
# 字典为每个版本的基本信息,如测试计划ID、版本ID、版本名称、是否打开、是否活动等
builds = tlc.getBuildsForTestPlan(测试计划ID)
print(builds)
3.8 通过测试计划ID获取计划下的最新版本信息
# 通过测试计划ID获取计划下的最新版本信息,返回数据为字典
# 字典为版本基本信息,如测试计划ID、版本ID、版本名称、是否打开、是否活动等
LatestBuild = tlc.getLatestBuildForTestPlan(测试计划ID)
print(LatestBuild)
3.9 通过测试计划ID获取测试计划下所有套件
# 通过测试计划ID获取测试计划下所有套件 返回的数据格式为包含字典的列表
# 字典为每个套件的基本信息 套件名称、套件ID、套件父类ID
# 需要注意的是获取的套件是每一个套件下所有套件
testSuites = tlc.getTestSuitesForTestPlan(测试计划ID)
print(testSuites)
3.10 通过测试计划ID获取计划下所有用例信息
# 通过测试计划ID获取计划下所有用例信息,返回数据格式为字典
# 字典的key值为用例ID,字典的value为用例的各项基本信息
# 如测试用例名称、测试用例ID、测试用例外部ID、执行方式等
# 位置参数为测试计划ID,可选参数有以下几种
# ['buildid', 'platformid',
#  'testcaseid', 'keywordid', 'keywords', 'executed', 'assignedto',
#  'executestatus', 'executiontype', 'getstepinfo', 'details',
#  'customfields']
testCases = tlc.getTestCasesForTestPlan(测试计划ID)
print(testCases)
3.11 通过测试用例ID获取测试用例
# 通过测试用例ID获取测试用例 返回数据格式为包含字典的列表
# 字典中为测试用例详细信息,作者名称、用例步骤、用例名称、摘要、前提等
testCase = tlc.getTestCase(测试用例ID)
print(testCase)
3.12 发送测试结果
# 发送测试执行结果
# 其中需要四个必须参数,其他可选参数可参考源码
# 根据实际情况进行选择,测试计划ID、执行测试状态 p为通过,f为失败,
# 第三个参数可以选择测试用例ID或测试用例外部ID
# 第四个参数可以选择测试用例版本名称或版本ID
# 返回的数据为包含字典的列表,字典中数据为执行状态等信息

result = tlc.reportTCResult(测试计划ID, 执行状态, 测试用例ID或测试用例外部ID, 版本ID或版本名称)
print(result)

4. 创建类API

4.1 创建测试项目
# 必选参数为测试项目名称,测试项目前缀
# 可选参数有['notes', 'active', 'public', 'options','itsname', 'itsenabled']
# 返回结果为包含字典的列表,字典中数据有项目ID、创建状态等信息
project = tlc.createTestProject(测试项目名称, 测试项目前缀)
print(project)
4.2 创建套件
# 必选参数为测试项目ID,套件名称,套件描述
# 可选参数['parentid', 'order', 'checkduplicatedname', 'actiononduplicatedname']
# 返回结果为包含字典的列表,字典中数据有套件ID、创建状态等信息
# testSuite = tlc.createTestSuite(测试项目ID, 套件名称, 套件描述)
# print(testSuite)
4.3 创建测试用例
"""
必选参数
    testcasename:用例名称
    testsuiteid:套件id
    testprojectid:项目id
    authorlogin:作者
    summary:描述信息
可选参数:
    steps, preconditions, importance, executiontype, order,internalid,
    checkduplicatedname, actiononduplicatedname,status, estimatedexecduration
其中可选参数中的steps要严格按照example进行编辑
example = [{'step_number': 1, 'actions': "action A",
           'expected_results': "result A", 'execution_type': 1},
            {'step_number': 2, 'actions': "action B",
            'expected_results': "result B", 'execution_type': 1},
            {'step_number': 3, 'actions': "action C",
            'expected_results': "result C", 'execution_type': 1}]
executiontype为测试用例执行方式 1为手工 2为自动
返回信息为包含字典的列表,字典中数据为创建状态、测试用例ID等信息
"""

testCase = tlc.createTestCase(testcasename='测试用例名称', testsuiteid='2',
							  testprojectid='1',authorlogin='test',
							  summary='描述信息', executiontype=2,
                              steps=[{'step_number': 1, 'actions': "action A",
                                      'expected_results': "result A", 'execution_type': 1},
                                     {'step_number': 2, 'actions': "action B",
                                      'expected_results': "result B", 'execution_type': 1},
                                     {'step_number': 3, 'actions': "action C",
                                      'expected_results': "result C", 'execution_type': 1}])
print(testCase)

4.4 创建、更新或添加测试用例步骤

"""
必选参数
    action:操作 值可选create,update,push
        create:创建
        update:更新
        push:追加
    steps:步骤 和上述example需保持一致
    testcaseexternalid或testcaseid
可选参数
    version
返回信息为包含字典的列表,字典中数据为创建状态、测试用例ID、测试步骤等信息
"""
steps = tlc.createTestCaseSteps(action='push', testcaseid='3',
                                steps=[{'step_number': 4, 'actions': "action A",
                                        'expected_results': "result A", 'execution_type': 1},
                                       {'step_number': 5, 'actions': "action B",
                                        'expected_results': "result B", 'execution_type': 1},
                                       {'step_number': 6, 'actions': "action C",
                                        'expected_results': "result C", 'execution_type': 1}])
print(steps)
4.5 创建测试计划
"""
必选参数
    testprojectname:测试项目名称
    testplanname:测试计划名称
可选参数
    prefix:描述
    note:note
    active:活动 可选0或1 0为非活动 1为活动 默认为1
    public:公共 可选0或1 0为非公共 1为公共 默认为1
返回信息为创建状态信息和测试计划ID等信息
"""
testPlan = tlc.createTestPlan(testprojectname='test01', testplanname='testplan', 
							  active=0, public=0)
print(testPlan)
4.6 创建测试版本
"""
必选参数
    testplanid:测试计划ID
    buildname:版本名称
可选参数
    buildnotes:版本说明
    active:活动   0为关闭 1为打开 默认为1
    open:打开 0为关闭 1为打开 默认为1
    releasedate:发布日期
    copytestersfrombuild:复制测试用例分配
返回为状态类信息 包含测试版本id等
"""

build = tlc.createBuild(testplanid='3', buildname='v1.1', active=1, open=0)
print(build)
4.7 添加测试用例到测试计划
"""
必选参数
    testprojectid:测试项目id
    testplanid:测试计划id
    testcaseexternalid:测试用例外部id,这个也可以使用testcaseid替代
    version:测试用例版本
可选参数:
    platformid:platformid
    executionorder:执行顺序
    urgency:重要程度
    overwrite:添加日期
返回为字典,字典中为添加状态类信息
"""
addCase = tlc.addTestCaseToTestPlan(testprojectid='1', testplanid='3', testcaseexternalid='test-3', version=1)
print(addCase)

到此已经形成闭环,同样还有一些更新删除类的API,操作方式也是大同小异,可以参考源码进行尝试,以上仅为个人理解,欢迎补充和更正。

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

呀儿呦丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值