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)
处于顶级用例集下的用例集不会被返回,只返回(一级)标红的用例集。
获取指定用例集下的用例集
用例集下只有一个用例集
用例集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"}
)
testlink自带java api_testlink的api相关推荐
- testlink自带java api_java如何连接testlink
1.下载相关的jar包 2.获取到testlink的url和key,注意:url不是testlink的连接地址,是连接地址+/lib/api/xmlrpc.php 3.测试是否连接成功 public ...
- 面试官:说说你项目的API如何封装的?你:欸,纳尼??什么是API【一文带你详解API】【Java养成】
Java养成计划----学习打卡第五天 Java入门到精通(打卡第五天) 学习内容 接口interface,API应用程序接口应用 内容管理 Hello!我是C风,专注于算法以及Java养成,如果觉得 ...
- java moment 日期转换_关于日期:如何使用Java 8 DateTime API转换修改后的儒略日数字...
我有一个数据库,用于存储日期和日期时间(分别为INTEGER和DOUBLE)作为已修改的儒略日数(MJD).修改后的儒略日数是自1858年11月17日午夜UTC以来连续的天数.根据定义,它们始终以UT ...
- Java 8 Time Api 使用指南【珍藏限量版】
点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! 1.概述 Java 8为Date和Time引入了新的API,以解决旧java.util.Da ...
- java 调用win32 api 学习总结
java使用JInvoke调用windows API 使用jinvoke调用windowsAPI.jna使用比较麻烦,需要写c代码和参数转换,jinvoke的使用就像jdk中的包一样. 官网使用参考: ...
- Java 8 Stream API详解
Java 8 Stream API详解 一.Stream API介绍 Java 8引入了全新的Stream API,此Stream与Java I/O包里的InputStream和OutputStrea ...
- Java调用 新浪微博API 接口发微博(包含js微博组件、springMVC新浪登录)详解
参考自:http://www.myexception.cn/program/1930025.html https://blog.csdn.net/qq_36580777/article/details ...
- Python 和 Java 处理废弃API的方法
Python 和 Java 处理废弃API的方法 Python处理废弃API 观察显示,Python api在不同的粒度上被弃用,这些粒度被分为四类:函数.参数.参数值等. 一.装饰器:库贡献者用于声 ...
- Java调用百度API出现{status:211,message:APP SN校验失败}
Java调用百度API出现{"status":211,"message":"APP SN校验失败"} {"status" ...
最新文章
- WSAStartup()函数以及DLL的加载
- dm9000 driver 1
- GAN之父NIPS 2016演讲现场直击:全方位解读生成对抗网络的原理及未来(附PPT)
- 指针常量与常量指针精解【一次掌握】
- 上海工程技术大学c语言,上海工程技术大学 C语言实习报告.doc
- vs如何显示arcgis 二次开发工具控件
- 关于安装CNPM 与搭建VUE空白项目
- Maven生命周期详解及常用命令
- Python基础语法,基本数据类型及相关操作
- 微信语音红包小程序开发如何提高精准度 红包小程序语音识别精准度 微信小程序红包开发语音红包...
- “强省会”从产业开始,长沙市智能汽车产业促进会正式授牌
- android 二级联动列表,仿eleme点餐页面
- 【三石jQuery视频教程】01.图片循环展示_再次重发
- 【SRS】ATC模式和时间抖动矫正
- CentOS7中使用yum安装Nginx
- linux移植街机模拟器,gngeo 游戏模拟器(街机)移植CE3100
- box模型之margin
- 神奇的“TexturePacker”
- 日语在线翻译excite网页版
- 一个好用的上传图片插件