公司的需求是: 用RobotFrameworjk框架执行case,用Testlink管理case和测试任务。需要持续统计每个版本的测试结果。

我觉得用Jenkins+Robot也行,Testlink+Robot也行。Testlink的优势就是可以管理case,分配测试任务。感觉如果要是能将Jenkins+Testlink+Robot整合到一起就完美了。

OK,其实将Robot的测试结果传到Testlink上也比较简单,找对接口就行,但是关键的就是,接口找不对...

Testlink的api模板我是没试成功。还有TCID(testcase ID),TPID(testplan ID)网上也没说怎么取。这里就详细的说下。

1. 下载安装TestLink-API-Python-client-0.6.1.zip,这个是别人封装好的接口。这个可以work...2. 自己先写个测试程序看看能不能连通Testlink(具体的TCID,TPID的查看在代码的说明中):

# -*- coding:utf-8 -*-
#! /usr/bin/python
import testlink
import os os.environ['TESTLINK_API_PYTHON_SERVER_URL'] = "http://yourtestlinkurl.com/lib/api/xmlrpc/v1/xmlrpc.php"
os.environ['TESTLINK_API_PYTHON_DEVKEY'] = "7776ad82392bfb213c5985508694a688" class FillResult(): def FillResultToTestLink(self,testcaseid, testplanid, buildname, result, note, user, platformid='' ):
self.testcaseid = testcaseid
self.testplanid = testplanid
self.buildname = buildname
self.result = result
self.note = note
self.user = user
self.platformid = platformid tls = testlink.TestLinkHelper().connect(testlink.TestlinkAPIClient)
print self.testcaseid, self.testplanid, self.buildname, self.result, self.note, self.user, self.platformid tls.reportTCResult(testcaseid=self.testcaseid, testplanid=self.testplanid, buildname=self.buildname, status=self.result,
notes=self.note)
"""
1. TestCaseID could check via the exported TestList XML file.
e.p:
<testcase internalid="43" name="通过get方式访问网页,参数中包含permit关键字">
The TestCaseID is 43.
2. TestPlanID need to find in TestLink Database.
Step:
[root@localhost ~]# mysql -uxxxxx -pxxxxxxxx
mysql> use testlink
mysql> select * from testplans;
+-----+----------------+-------+--------+---------+-----------+------------------------------------------------------------------+
| id | testproject_id | notes | active | is_open | is_public | api_key |
+-----+----------------+-------+--------+---------+-----------+------------------------------------------------------------------+
| 76 | 1 | | 1 | 1 | 1 | 07df3b4860ffbdc1577a669255541bc6578c90f581f0275ce5f3b27109521366 |
| 176 | 1 | | 0 | 1 | 0 | a01dbdbabd22c51b453e3c2eef1cb5f884f80bbd0afe3dde745373a6920f8bfb |
+-----+----------------+-------+--------+---------+-----------+------------------------------------------------------------------+
2 rows in set (0.00 sec) The Test PlanID is 76.
3. PlatFormID may be set to 0.
4. BuildName is the name defined in TestLink.
5. Result 'p' means 'Passed'; 'f' means 'Failed'.
6. Note will set in TestLink result description.
7. User is who execute this case.
""" if __name__ == "__main__": a = FillResult()
a.FillResultToTestLink(testcaseid='', testplanid='', buildname='执行1.0', result='f',
note='some notes',user='bonjov1', platformid='')

3. 执行完后,在Testlink中查看相应的case结果,应该是pass或者是fail。

4. 找我写的来,应该没有问题,可以work的。

5. 然后在RobotFramework中写一下在执行完case后将结果上传到Testlink中:

  a)首先需要设置下开关,在执行正式测试任务是才会把结果上传到Testlink中,平时调试脚本时不需要上传case测试结果。

  我是在总的Project下设置个全局变量“${debug}”,在执行正式测试任务时更改这个变量就行了。

  b) 创建Testlink的关键字:testplanid, buildname, tester, 因为这些个变量比较固定,写在外面感觉就可以。

  c) 创建Teardown关键字:

    比如我这个Teardown是在执行完case后,退出FTP session:

Logout FTP
log nonononon
Run Keyword If Test Passed Fill Pass Result in TestLink
Run Keyword If Test Failed Fill Fail Result in TestLink Fill Pass Result in TestLink
Run Keyword IF ${debug}==1 Pass Execution Case: ${caseid} Finished
... ELSE FillResultToTestLink testcaseid=${caseid} testplanid=${testplanid} buildname=${buildname} result=p
... note='' user=${tester} Fill Fail Result in TestLink
Run Keyword IF ${debug}==1 Pass Execution Case: ${caseid} Finished
... ELSE FillResultToTestLink testcaseid=${caseid} testplanid=${testplanid} buildname=${buildname} result=f
... note='' user=${tester}

  d)如果你写的参数都正确的话,应该就会自动的将测试结果传到Testlink上了。

如何将RobotFramework中case的执行结果上传到TestLink中。的更多相关文章

  1. kindeditor在Java项目中的应用以及图片上传配置

    在官网下载Kindededitor的开发包   在项目中javaweb项目中导入kindeditor必须要使用的Jar包(用于文件上传,除非你的富文本编辑器不使用图片上传)jar包可以在官网的开发包中 ...

  2. vue+element-ui中的图片获取与上传

    vue+element-ui中的图片获取与上传 工作上接触了一下图片的处理,图片的格式是文件流, 记录如下. 请求图片 请求图片的时候,带上{ responseType: 'blob' }, 否则图片 ...

  3. ueditor1.3.6jsp版在struts2应用中上传图片报"未找到上传文件"解决方案

    摘要: ueditor1.3.6jsp版在struts2应用中上传图片报"未找到上传文件"解决方案 在struts2应用中使用ueditor富文本编辑器上传图片或者附件时,即使配置 ...

  4. 【javascript】html5中使用canvas编写头像上传截取功能

    [javascript]html5中使用canvas编写头像上传截取功能 本人对canvas很是喜欢,于是想仿照新浪微博头像上传功能(前端使用canvas) 本程序目前在谷歌浏览器和火狐浏览器测试可用 ...

  5. struts文件上传拦截器中参数的配置(maximumSize,allowedTypes ,allowedExtensions)问题

    <interceptor-ref name="fileUpload"> <param name="allowedTypes">image ...

  6. 【php增删改查实例】第二十四节 - 文件上传在项目中的具体应用

    文件上传在项目中,一般有两个用武之地,分别为设置用户的头像和上传附件.本节我们演示如果进行用户头像的上传. 因为一个用户单独并且唯一对应了一个头像,是一对一的关系,所以我们需要去给tm_users表添 ...

  7. [js]uploadify结合jqueryUI弹出框上传,js中的冒出的bug,又被ie坑了

    引言 最近在一个项目中,在用户列表中需要对给没有签名样本的个别用户上传签名的样本,就想到博客园中上传图片使用弹出框方式,博客园具体怎么实现的不知道,只是如果自己来弄,想到两个插件的结合使用,在弹出框中 ...

  8. zt对于C#中的FileUpload解决文件上传大小限制的问题设置

    对于C#中的FileUpload解决文件上传大小限制的问题设置 您可能没意识到,但对于可以使用该技术上载的文件的大小存在限制.默认情况下,使用 FileUpload 控件上载到服务器的文件最大为 4M ...

  9. 学习Git的一点心得以及如何把本地修改、删除的代码上传到github中

    一:学习Github的资料如下:https://git.oschina.net/progit/ 这是一个学习Git的中文网站,如果诸位能够静下心来阅读,不要求阅读太多,只需要阅读前三章,就可以掌握Gi ...

随机推荐

  1. 在DOS界面下快速进入目录的技巧

    在DOS界面如果想进入某一目录还是比较困难的,尤其是有长目录名和中文目录名的时候. 比如:要进入“D:/工具箱/杀毒软件”这个目录. 1.在Windows下进入这个目录. 2.在地址栏输入 C:/WI ...

  2. axios获取后端数据

    axios向后端请求数据时,一直获取不到数据, 后来改成这样写获取到了数据 不是一个this,有人说用箭头函数就可以了.

  3. Apache RocketMQ 正式开源分布式事务消息

    近日,Apache RocketMQ 社区正式发布4.3版本.此次发布不仅包括提升性能,减少内存使用等原有特性增强,还修复了部分社区提出的若干问题,更重要的是该版本开源了社区最为关心的分布式事务消息, ...

  4. Uva 派 (Pie,NWERC 2006,LA 3635)

    依然是一道二分查找 #include<iostream> #include<cstdio> #include<cmath> using namespace std; ...

  5. Linux入门-第八周

    1.用shell脚本实现自动登录机器 #!/usr/bin/expectset ip 192.168.2.192set user rootset password rootspawn ssh $use ...

  6. Freemaker基于word模板动态导出汇总整理

    Freemaker基于word模板动态导出汇总整理 一.使用的jar包: 二.Word模板动态导出的基本思路: 1.首先通过自己在word中创建好需要导出的word文本+表格的模板,模板中需要填写内容 ...

  7. jQuery实现复选框的全选、反选功能

    <ul id="list"> <li><label><input type="checkbox" value=&quo ...

  8. WebSocket 详解

    WebSocket 出现前 构建网络应用的过程中,我们经常需要与服务器进行持续的通讯以保持双方信息的同步.通常这种持久通讯在不刷新页面的情况下进行,消耗一定的内存资源常驻后台,并且对于用户不可见.在 ...

  9. 503. Next Greater Element II

    https://leetcode.com/problems/next-greater-element-ii/description/ class Solution { public: vector&l ...

  10. POJ:2492-Bug's Life(二分图的判定)

    Bug's Life Time Limit: 10000MS Memory Limit: 65536K Description Background Professor Hopper is resea ...