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)

操作测试用例集

创建用例集

  1. 无测试用例集

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

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

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

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

创建名称相同的用例集

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

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

[{'id': 68219, 'name': '', 'name_changed': False, 'status': True,
'operation': 'createTestSuite', 'additionalInfo': '', 'message': 'ok'}]

获取用例集

  1. 获取顶级用例集
getFirstLevelTestSuitesForTestProject(project_id)

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

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

    用例集下只有一个用例集
用例集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的api的更多相关文章

  1. Fitnesse集成TestLink

    TestLink作为开源测试管理工具,可以进行测试工程.测试计划以及执行计划的管理,而且TestLink团队提供了XML-PRC的接口供第三方工具调用,接口支持程度也比较好. Fitnesse作为开源 ...

  2. Ubuntu16.04安装xampp及部署Testlink

    一.从官网下载xampp并安装: https://www.apachefriends.org/zh_cn/index.html chmod +x xampp-linux-x64-5.6.30-0-in ...

  3. 基于python+Testlink+Jenkins实现的接口自动化测试框架V3.0

    基于python+Testlink+Jenkins实现的接口自动化测试框架V3.0 目录 1. 开发环境2. 主要功能逻辑介绍3. 框架功能简介 4. 数据库的创建 5. 框架模块详细介绍6. Tes ...

  4. 【Python】实现将Excel编写的用例上传到testlink指定用例集

    背景 百科上说TestLink 是基于web的测试用例管理系统,主要功能是测试用例的创建.管理和执行,并且还提供了一些简单的统计功能.其他的信息可以参照他们的官网http://www.testlink ...

  5. 如何将RobotFramework中case的执行结果上传到TestLink中。

    公司的需求是: 用RobotFrameworjk框架执行case,用Testlink管理case和测试任务.需要持续统计每个版本的测试结果. 我觉得用Jenkins+Robot也行,Testlink+ ...

  6. TestLink+Jenkins在Ubuntu16.04搭建集成测试环境

    序章 序1:TestLink和TestLink-API-Python-client 目前TestLink的最新版本是1.9.19 TestLink-API-Python-client支持的TestLi ...

  7. python模块学习之testlink (自动回写测试案例执行结果到testlink)

    安装 pip install TestLink-API-Python-client #!/usr/bin/env Python # -*- coding: utf-8 -*- ''' Created ...

  8. 如何使用Postman编写Testlink测试用例

    Postman2Testlink 通过Postman快速操作testlink测试用例.测试套件.测试计划.添加关键词.添加自定义字段等等. 工具地址 https://github.com/liyinc ...

  9. Python之TestLink篇

    如何让时间变慢? 你们不知道吧,这个时候翻开书,时间又变慢了一倍,可以这样延年益寿,哈哈哈 ------------------------------------------------------ ...

随机推荐

  1. Redis 按正则获取keys

    首先,我被坑了很久由于不知道这个redis支持的正则只有3种 1. * 任意长度的任意字符 2. ? 任意单一字符 3. [xxx] 匹配方括号中的一个字符 2.从上面开来,keys的模糊匹配功能很方 ...

  2. .NET Core技术研究-配置读取

    升级ASP.NET Core后,配置的读取是第一个要明确的技术.原先的App.Config.Web.Config.自定义Config在ASP.NET Core中如何正常使用.有必要好好总结整理一下,相 ...

  3. 在Windows中安装OpenCV-Python |四

    目标 在本教程中 我们将学习在你的Windows系统中设置OpenCV-Python. 下面的步骤在装有Visual Studio 2010和Visual Studio 2012的Windows 7- ...

  4. 探索学习率设置技巧以提高Keras中模型性能 | 炼丹技巧

      学习率是一个控制每次更新模型权重时响应估计误差而调整模型程度的超参数.学习率选取是一项具有挑战性的工作,学习率设置的非常小可能导致训练过程过长甚至训练进程被卡住,而设置的非常大可能会导致过快学习到 ...

  5. JavaScript DOM 事件模型

    JavaScript DOM 事件模型 JavaScript 是基于面向对象和事件驱动的一门语言,事件模型是 DOM 中至关重要的内容,理解事件驱动机制.事件反馈.事件冒泡.事件捕获以及事件委托能帮助 ...

  6. docker 本地镜像导入导出 compose安装

    docker 本地镜像导入导出 1.Docker导入本地gz镜像 [root@rocketmq-nameserver4 dev]# cat alibaba-rocketmq-3.2.6.tar.gz ...

  7. Three中的动画实现-[three.js]

    Table Of Content 动画原理 js中动画实现原理setInterval js中动画实现新方法requestAnimationFrame 一个示例 动画原理 动画的本质实际上就是快速地不断 ...

  8. ASP.NET Core WEB API 使用element-ui文件上传组件el-upload执行手动文件文件,并在文件上传后清空文件

    前言: 从开始学习Vue到使用element-ui-admin已经有将近快两年的时间了,在之前的开发中使用element-ui上传组件el-upload都是直接使用文件选取后立即选择上传,今天刚好做了 ...

  9. 1045 Favorite Color Stripe (30分)(简单dp)

    Eva is trying to make her own color stripe out of a given one. She would like to keep only her favor ...

  10. PTA数据结构与算法题目集(中文) 7-42整型关键字的散列映射 (25 分)

    PTA数据结构与算法题目集(中文)  7-42整型关键字的散列映射 (25 分) 7-42 整型关键字的散列映射 (25 分)   给定一系列整型关键字和素数P,用除留余数法定义的散列函数将关键字映射 ...