如何将RobotFramework中case的执行结果上传到TestLink中。
公司的需求是: 用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中。的更多相关文章
- kindeditor在Java项目中的应用以及图片上传配置
在官网下载Kindededitor的开发包 在项目中javaweb项目中导入kindeditor必须要使用的Jar包(用于文件上传,除非你的富文本编辑器不使用图片上传)jar包可以在官网的开发包中 ...
- vue+element-ui中的图片获取与上传
vue+element-ui中的图片获取与上传 工作上接触了一下图片的处理,图片的格式是文件流, 记录如下. 请求图片 请求图片的时候,带上{ responseType: 'blob' }, 否则图片 ...
- ueditor1.3.6jsp版在struts2应用中上传图片报"未找到上传文件"解决方案
摘要: ueditor1.3.6jsp版在struts2应用中上传图片报"未找到上传文件"解决方案 在struts2应用中使用ueditor富文本编辑器上传图片或者附件时,即使配置 ...
- 【javascript】html5中使用canvas编写头像上传截取功能
[javascript]html5中使用canvas编写头像上传截取功能 本人对canvas很是喜欢,于是想仿照新浪微博头像上传功能(前端使用canvas) 本程序目前在谷歌浏览器和火狐浏览器测试可用 ...
- struts文件上传拦截器中参数的配置(maximumSize,allowedTypes ,allowedExtensions)问题
<interceptor-ref name="fileUpload"> <param name="allowedTypes">image ...
- 【php增删改查实例】第二十四节 - 文件上传在项目中的具体应用
文件上传在项目中,一般有两个用武之地,分别为设置用户的头像和上传附件.本节我们演示如果进行用户头像的上传. 因为一个用户单独并且唯一对应了一个头像,是一对一的关系,所以我们需要去给tm_users表添 ...
- [js]uploadify结合jqueryUI弹出框上传,js中的冒出的bug,又被ie坑了
引言 最近在一个项目中,在用户列表中需要对给没有签名样本的个别用户上传签名的样本,就想到博客园中上传图片使用弹出框方式,博客园具体怎么实现的不知道,只是如果自己来弄,想到两个插件的结合使用,在弹出框中 ...
- zt对于C#中的FileUpload解决文件上传大小限制的问题设置
对于C#中的FileUpload解决文件上传大小限制的问题设置 您可能没意识到,但对于可以使用该技术上载的文件的大小存在限制.默认情况下,使用 FileUpload 控件上载到服务器的文件最大为 4M ...
- 学习Git的一点心得以及如何把本地修改、删除的代码上传到github中
一:学习Github的资料如下:https://git.oschina.net/progit/ 这是一个学习Git的中文网站,如果诸位能够静下心来阅读,不要求阅读太多,只需要阅读前三章,就可以掌握Gi ...
随机推荐
- Python F-string 更快的格式化
Python的格式化有%s,format,F-string,下面是比较这三种格式化的速度比较 In [12]: a = 'hello' In [13]: b = 'world' In [14]: f' ...
- Python实现进度条小程序
一.print()参数介绍 1.end:指定打印结束后添加的字符,默认值为换行符 for j in range(3): print('hello world') for i in range(3): ...
- jQuery Pagination分页插件--刷新
源码地址:https://github.com/SeaLee02/FunctionModule/blob/master/UploadFiles/WebDemo/FenYE/FenYeDemo.aspx ...
- 搜狗浏览器特性页面JS
http://ie.sogou.com/features4.2.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN ...
- 流行JAVA开发工具
流行JAVA开发工具 正所谓工欲善其事必先利其器,我们在开发java语言过程中同样需要依款不错的开发工具,目前市场上的IDE很多,本文为大家推荐以下下几款java开发工具: Eclipse(推荐):另 ...
- Python小项目之五子棋
1.项目简介 在刚刚学习完python套接字的时候做的一个五子棋小游戏,可以在局域网内双人对战,也可以和电脑对战 2.实现思路 局域网对战 对于局域网功能来说,首先建立连接(tcp),然后每次下棋时将 ...
- 项目实战14.1—ELK 企业内部日志分析系统
本文收录在Linux运维企业架构实战系列 一.els.elk 的介绍 1.els,elk els:ElasticSearch,Logstash,Kibana,Beats elk:ElasticSear ...
- Ajax基础知识梳理
Ajax用一句话来说就是无须刷新页面即可从服务器取得数据.注意,虽然Ajax翻译过来叫异步JavaScript与XML,但是获得的数据不一定是XML数据,现在服务器端返回的都是JSON格式的文件. 完 ...
- 精读《sqorn 源码》
1 引言 前端精读<手写 SQL 编译器系列> 介绍了如何利用 SQL 生成语法树,而还有一些库的作用是根据语法树生成 SQL 语句. 除此之外,还有一种库,是根据编程语言生成 SQL.s ...
- 科学计算库Numpy——数组形状
改变数组维数 给数组的shape属性赋值,改变数组的维数.数组的大小是不能改变的. 增加维度 使用np.newaxis增加维度. 删除维度 使用squeeze()删除维度是1的维度,也就是删除shap ...