testlink自带java api_testlink的api

testlink可以做很多你想象得到的事情,如API测试参数管理,Excel导入导出,快速模板创建测试用例,集成Jenkins。

TestLink API第三方库: TestLink-API-Python-client 0.8.0

example

获取私人key

点击进入用户的页面,点击生成key按钮,生成成功后会通过邮件发送到该用户邮箱。

需要配置testlink配置中的SMTP,否则会报错:LOCALIZE: apikey_cannot_be_reseted_invalid_smtp_hostname。

http://[YOURSERVER]/testlink/lib/api/xmlrpc/v1/xmlrpc.php

如果搭建的未修改为testlink而是原始文件夹testlink-1.9.15,这里链接中的testlink要修改为testlink-1.9.15。

获取TestlinkAPIClient对象实例

url = "http://11.12.13.16/testlink/lib/api/xmlrpc/v1/xmlrpc.php"

key = "9f5ec9cd058457usdko2191188"

tlc = testlink.TestlinkAPIClient(url, key)

获取基础信息

print(tlc.countProjects())

projects = tlc.getProjects()

for project in projects:

print(project)

操作测试用例集

创建用例集

无测试用例集

新建项目,未创建测试集,此时获取first level的测试集为空。

使用创建测试用例集函数createTestSuite时,最后一个参数parentid此时可以不用传输。

有测试用例集

如果是创建在项目的根上,最后一个参数parentid此时可以不用传输。

如果是创建在已有的测试用例集下面,最后一个参数parentid此时要传输为目标用例集的ID。

创建名称相同的用例集

如创建已经存在相同名称的用例集,不会报错,返回0。

创建不重复的用例集,成功后,返回结果如下:

[{‘id‘: 68219, ‘name‘: ‘‘, ‘name_changed‘: False, ‘status‘: True,

‘operation‘: ‘createTestSuite‘, ‘additionalInfo‘: ‘‘, ‘message‘: ‘ok‘}]

获取用例集

获取顶级用例集

getFirstLevelTestSuitesForTestProject(project_id)

20200402155046516745.png

处于顶级用例集下的用例集不会被返回,只返回(一级)标红的用例集。

获取指定用例集下的用例集

用例集下只有一个用例集

用例集1

用例集2

使用tlc.getTestSuitesForTestSuite(testsuite_id)返回的数据结构如下,开头不会多一个key:

{‘id‘: ‘68596‘, ‘details‘: ‘‘, ‘name‘: ‘用例集2‘, ‘node_type_id‘: ‘2‘, ‘node_order‘: ‘1‘, ‘parent_id‘: ‘68576‘}

用例集下有多个用例集

用例集1

用例集2

用例集3

使用tlc.getTestSuitesForTestSuite(testsuite_id)返回的数据结构如下, 前面会多一个id的key:

{‘68596‘:

{‘id‘: ‘68596‘, ‘details‘: ‘‘, ‘name‘: ‘用例集2‘, ‘node_type_id‘: ‘2‘, ‘node_order‘: ‘1‘, ‘parent_id‘: ‘68576‘},

‘68673‘:

{‘id‘: ‘68673‘, ‘details‘: ‘‘, ‘name‘: ‘用例集3‘, ‘node_type_id‘: ‘2‘, ‘node_order‘: ‘2‘, ‘parent_id‘: ‘68576‘}}

试了下有3个子集的,情况和2个子集相同:

用例集1

用例集2

用例集3

用例集4

{‘68596‘:

{‘id‘: ‘68596‘, ‘details‘: ‘‘, ‘name‘: ‘用例集2‘, ‘node_type_id‘: ‘2‘, ‘node_order‘: ‘1‘, ‘parent_id‘: ‘68576‘},

‘68673‘:

{‘id‘: ‘68673‘, ‘details‘: ‘‘, ‘name‘: ‘用例集3‘, ‘node_type_id‘: ‘2‘, ‘node_order‘: ‘2‘, ‘parent_id‘: ‘68576‘},

‘68674‘:

{‘id‘: ‘68674‘, ‘details‘: ‘‘, ‘name‘: ‘用例集4‘, ‘node_type_id‘: ‘2‘, ‘node_order‘: ‘3‘, ‘parent_id‘: ‘68576‘}}

针对以上不同格式做不同处理。

操作测试用例

获取测试用例

def get_test_case(test_case_id):

test_case = tlc.getTestCase(None, testcaseexternalid=test_case_id)

for i in test_case:

print ("序列", "执行步骤", "预期结果")

for m in i.get("steps"):

print (m.get("step_number"), m.get("actions"), m.get("expected_results"))

get_test_case("auto-10") #要加上项目前缀

注意:这里的用例ID要加上项目前缀,否则获取不到

创建测试用例

源代码如下

def createTestCase(self, *argsPositional, **argsOptional):

参数

positional argument位置参数:

testcasename :测试用例名称

testsuiteid :创建在某个测试集,该测试集的ID

testprojectid :测试项目ID

authorlogin :创建人姓名

summary :用例总结

可选参数:

steps :步骤,为一个list

preconditions :前置条件

importance

executiontype

order

internalid

checkduplicatedname

actiononduplicatedname

status

estimatedexecduration

创建成功返回值

[

{‘operation‘: ‘createTestCase‘,

‘status‘: True,

‘id‘: 71278,

‘additionalInfo‘:

{‘id‘: 71278,

‘external_id‘: ‘119‘,

‘status_ok‘: 1,

‘msg‘: ‘ok‘,

‘new_name‘: ‘‘,

‘version_number‘: 1,

‘has_duplicate‘: False,

‘external_id_already_exists‘: False,

‘update_name‘: False,

‘tcversion_id‘: 71279},

‘message‘: ‘Success!‘}

]

external_id: 用例的ID

步骤预先定义

方法1 使用list

必须是定义好的由字典组成的列表

steps =

[{‘step_number‘ : 1, ‘actions‘ : "action A" ,

‘expected_results‘ : "result A", ‘execution_type‘ : 0},

{‘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‘ : 0}]

newTestCase = self.tlc.createTestCase(........steps=steps)

方法2 使用initStep

该方法无需传递steps参数,已经预存在了tlc对象中

tlc.initStep("添加一个动作", "期望一个结果", 1)

tlc.appendStep("添加一个动作2", "期望一个结果2", 1)

tlc.appendStep("添加一个动作3", "期望一个结果3", 1)

newTestCase = self.tlc.createTestCase(.......)

获取关键字

tlc.listKeywordsForTC(testcase_id)

自定义字段

自定义关键则的操作方法,在编辑器中输入custom后,搜出的关键字有如下

第一个猜测是需求关键字。 get开头的获取关键字。 update开头的是更新关键字。

注意: testcaseexternalid一定要写全"au-117",-符号不能少。

获取用例自定义字段值

getTestCaseCustomFieldDesignValue(

testcaseexternalid="au-117",

testprojectid="68194",

customfieldname=‘版本号‘,

version=1

)

这里的version没找到是指哪里,填写1就可以了。

更新用例自定义字段值

tlc.updateTestCaseCustomFieldDesignValue(

testcaseexternalid="au-117",

testprojectid="68194",

version=1,

customfields={"版本号": "6.6"}

)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值