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

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

 

by:授客 QQ1033553122

 

  博客:http://blog.sina.com.cn/ishouke

欢迎加入软件性能测试交流QQ群:7156436

 

 

 

目录

1      开发环境... 1

2      主要功能逻辑介绍... 1

3      框架功能简介... 3

4      框架模块详细介绍... 3

5      Testlink相关的配置与用例管理... 10

6      运行结果... 13

7      源码下载... 14

8      说明... 14

 

1、  开发环境

win7

PyCharm 4.0.5

python 3.3.2

 

testlink-1.9.14

下载地址http://pan.baidu.com/s/1c16H50O

安装教程:http://blog.sina.com.cn/s/blog_13cc013b50102w9am.html

 

TestLink-API-Python-client-master

下载地址http://pan.baidu.com/s/1pLrcunT

 

2、  主要功能逻辑介绍

 

 

 

 

3、  框架功能简介

1、框架集成了Testlink,可使用Testlink灵活对测试项目,测试计划,测试用例进行管理

 

2可通过配置文件灵活配置运行模式,支持按测试项目、测试计划、测试套件批量运行执行用例

 

3、支持HTTPSHTTPWebService协议,支持POST, GET方法,支持JSON,非JSON数据格式的请求,支持多种形式的数据校验

 

4、可自动生成HTML可视化接口测试报告

 

5、可根据配置在测试完成后,自动发送测试报告邮件

 

6、支持文件、控制的日志打印,可分别控制开关

 

7、支持模块化开发

 

8、可集成Jenkins自动运行脚本

参考文章:Jenkins添加Windows Slave远程执行python项目脚本

 

 

4、  框架模块详细介绍

a)   config

 



 

dbconfig.conf包含测试数据库,应用数据库的配置信息

 

logconfig.conf包含日志配置信息,具体如下:

 

 



 

mail.conf包含邮件发送配置信息,如下,

 

 



注:不同类型的邮箱(发件人邮箱),需要修改配置文件为对应的host和端口

smtp.163.com:25

smtp.qq.com:465

 

report.conf包含测试报告文件配置信息,如下

 

 



 

runmodeconfig.conf包含运行模式配置信息

 

 



 

runmodeconfig.py日志配置类

 

b)   globalpkg

 

 



log.py实现日志打印类

 

mydb.py实现数据库类,封装数据库相关操作

 

mytestlink.py主要用于获取testlink连接实例

 

othertools.py实现其它通用功能,比如数据转换,批量创建目录等

 

globalpy.py主要提供全局变量,全局实例等

 

 



 

c)   logstestreport

可分别用于存放日志文件,测试报告

 

d)   interface

封装接口测试方法类

 

 



 

说明:可根据需要,每个接口对应一个模块,对应一个类;也可以多个接口对应一个模块,对应一个类

需要注意的是,这里添加的模块及类,需要在casestep.py中导入

 

 

目前框架中的模块给出了一些案例,如下:

 

 

 



 

对应用例配置:

 

 


 


接口自动化 <wbr>基于python+Testlink+Jenkins实现的接口自动化测试框架

 

 

更多案例烦自行查阅模块

 

e)   其它模块

如下,顾名思义

 

 

 



 

5、  Testlink必要的配置与用例管理

 

为了批量设置接口ip,端口(主要是这两个),协议信息(仅用于展示),需要对项目,计划,套件等必要的配置,以及客户端环境变量配置

a)   配置

如下,登陆Testlink,进入用户管理-查看用户,如下

 



 

   点击目标用户(例中为admin),打开如下界面

   接口自动化 <wbr>基于python+Testlink+Jenkins实现的接口自动化测试框架

  

 



    点击生成新的密钥,如下

 



在运行python脚本端进行环境变量的配置,如下:

1、新建系统环境变量“TESTLINK_API_PYTHON_DEVKEY”,变量值为上述秘钥

 

 



 

2、新建“TESTLINK_API_PYTHON_SERVER_URL”系统环境变量,变量值为

http://{host}/testlink/lib/api/xmlrpc/v1/xmlrpc.php”,其中hosttestlink的访问地址

 

 



测试是否生效:

C:\Users\laiyu>python

Python 3.3.2 (v3.3.2:d047928ae3f6, May 16 2013, 00:03:43) [MSC v.1600 32

tel)] on win32

Type "help", "copyright", "credits" or "license" for more information.

>>> import testlink

>>> tls = testlink.TestLinkHelper().connect(testlink.TestlinkAPIClient)

>>> tls.testLinkVersion()

'1.9.14'

 

      项目,计划,套件等相关配置
     

 


 



 



b)   用例管理

 



 



 

 






 

6、  运行结果

见源码附件

 

7、  源码下载

下载地址:http://pan.baidu.com/s/1c2Av9FM

 

下载后解压,用pycharm导入项目即可

 

8、  说明

时间有限,精力有限,暂且就到这吧,有需要的可以自己扩展、修改框架。

注:目前还存在个bug,测试报告中,类似xml格式数据没显示出来,有兴趣的烦先自己解决下。

 

转载于:https://www.cnblogs.com/shouke/p/10157784.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/357387.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

this的指向

箭头函数&#xff1a;定义时所在的作用域&#xff08;tip:继承而来 函数作用域 &#xff09; 普通函数&#xff1a;指向调用它的对象 箭头函数体内的 this对象&#xff0c;就是定义时所在的对象&#xff0c;而不是使用时所在的对象 1、箭头函数没有自己的this&#xff0c;ar…

事关每个程序员的职业规划与履历

今天&#xff0c;甚至过去&#xff0c;大多数人都是由自己来设计他们的职业生涯的。 无论你正要启程&#xff0c;还是已经奋斗多年&#xff0c;以下内容都会对您的职业生涯有所助益。 目录 几条重要的职业规划提示。 1. 学习的步伐不停止 2. 学会问、学会听&#xff0c;学会学习…

程序员应该如何规划自己的人生与书写履历?

今天,甚至过去,大多数人都是由自己来设计他们的职业生涯的。 无论你正要启程,还是已经奋斗多年,以下内容都会对您的职业生涯有所助益。几条重要的职业规划提示。1. 学习的步伐不停止 古人说,活到老,学到老。终身学习应该是您的座右铭。 世界在不断变化,每个人都在寻找各…

浅谈多线程——NSThread

上一篇文章中我们大致了解了GCD的模式和方法&#xff0c;在iOS开发中除了GCD之外&#xff0c;还有NSThread和NSOperation两种多线程方式。 1.NSThread - a - 使用NSThread开辟多线程进行子任务处理&#xff1a;类方法和初始化方法 使用类方法不需要创建对象就可以直接开辟多线程…

2021年程序员可以做哪些副业?

哈喽&#xff0c;大家好&#xff0c;我是孙叫兽&#xff0c;本期内容给大家分享程序员搞副业的一期节目&#xff0c;欢迎大家一起学习。 1.程序员为什么要做副业&#xff1f; 副业意味着自由 时至今日&#xff0c;仍然有一大群程序员还天真地认为从事副业是一种压迫。但事实是&…

学习Apache Camel –实时索引推文

在大多数软件开发项目中&#xff0c;有一点需要使应用程序开始与其他应用程序或第三方组件通信。 无论是发送电子邮件通知&#xff0c;调用外部api&#xff0c;写入文件还是将数据从一个地方迁移到另一个地方&#xff0c;您都可以推出自己的解决方案或利用现有框架。 对于Jav…

【坑】执行Consumer的时候发生java.net.UnknownHostException错误

【时间】&#xff1a; 2016/4/8 17:30 【问题】&#xff1a; kafka执行Consumer实例的时候&#xff0c;发生了一下错误。 kafka配置文件server.properties如下&#xff1a; zookeeper配置文件zoo.cfg内容如下&#xff1a; consumer的实现代码如下&#xff1a; 其中静态类的定义…

如何上架自己的应用到各大应用商店?

大家好&#xff0c;我叫孙叫兽&#xff0c;本期给大家分享的内容是如何上架自己的应用到应用商店&#xff0c;感谢大家的阅读&#xff01;1.上架各大应用商店需要准备哪些材料&#xff1f;上架各大安卓应用商店&#xff08;腾讯应用宝、阿里应用商店、百度手机助手、华为应用市…

时间复杂度和空间复杂度[数据结构]

參考&#xff1a;本文为小甲鱼教学视频的学习笔记。 1、为什么要学习时间复杂度和空间复杂度&#xff1f;你说一个算法好另外一个算法不好&#xff0c;有什么推断根据&#xff1f;哪个算法效率高&#xff1f;怎么推断&#xff1f;那么就要学习时间和空间复杂度了。思考&#xf…

js编码解码decodeURI()与decodeURIComponent()的区别

区别&#xff1a; encodeURIComponent()对/?:&$,#进行编码&#xff0c;encodeURI()不会 如果url的query和path传参中含有这些字符会被不正确的截断&#xff0c;拿到的参数会是错误的&#xff0c;一般都会用encodeURIComponent()进行编码、decodeURIComponent进行解码 en…

gitlab将分支代码合并到master上

1、首先在test分支上进行git add .git commit -m "test"git push 2、切换到master上git checkout mastergit merge test git push

堆栈跟踪 堆栈跟踪_过滤日志中无关的堆栈跟踪行

堆栈跟踪 堆栈跟踪我喜欢堆栈痕迹。 不是因为我喜欢错误&#xff0c;而是因为发生错误的那一刻&#xff0c;堆栈跟踪是无价的信息源。 例如&#xff0c;在Web应用程序中&#xff0c;堆栈跟踪向您显示完整的请求处理路径&#xff0c;从HTTP套接字到过滤器&#xff0c;Servlet&am…

VUE使用vue-seamless-scroll自动滚动表格数据,对表格数据排序无效的解决办法

使用vue-seamless-scroll循环表格数据&#xff0c;建议使用v-for,ul li 的形式便于操作属性&#xff0c;elemengt ui table可能不好处理兼容性问题及属性设置&#xff0c;尤其是一个页面添加多个表格及效果。 VUE : 排序 this.$refs.seamlessScroll.reset() 效果图

前端常见的加密算法介绍

一、前言 在信息安全越来越受重视的今天&#xff0c;前端的各种加密也变得更加重要。通常跟服务器的交互中&#xff0c;为保障数据传输的安全性&#xff0c;避免被人抓包篡改数据&#xff0c;除了 https 的应用&#xff0c;还需要对传输数据进行加解密。 目前常见的加密算法可…

一时冲动:“通往瓦尔哈拉之路的冒险”

通过所有有关Java 9和Project Jigsaw的讨论&#xff0c;我们不应忽视Java的另一重大变化。 希望在第10版或第11版中&#xff0c; Valhalla项目能够实现并介绍价值类型和专业化。 那么这是怎么回事&#xff0c;项目进展如何&#xff0c;面临什么挑战&#xff1f; 几天前&#x…

小程序分包

一、小程序分包 微信文档写的够清楚了 使用分包 | 微信开放文档 &#xff08;1&#xff09;常规分包注意点&#xff1a; 每个分包只能引用主包和自己的资源 &#xff08;2) 独立分包注意点&#xff1a;特别麻烦 懒得用了吧 独立分包中不能依赖主包和其他分包中的内容 …

解决Sublime Text3莫名的中文乱码问题

有好几回用Sublime Text3写着中英混杂的文字的时候&#xff0c;会突然就弹出警告说什么编码不行&#xff0c;然后点击确定后&#xff0c;原来的中文全都乱码了&#xff1a; 然后即使按ctrlz撤回也没用&#xff0c;重新打开也没用&#xff0c;用记事本的转换ansi、unicode等方式…

try catch finally的用法

1、不使用try...catch出现异常后&#xff0c;后面的代码都不会运行了 login() {console.log(b);console.log(hhhhhhhh);}, 2、使用了try...catch出现异常后&#xff0c;try...catch后的代码还会继续运行 login() {try{console.log(b);}catch (e){console.log(e);}console.log…

网站优化第一次网页加载的速度的办法与思路。

网站重新开发了一次&#xff0c;第一次部署到测试网络&#xff0c;访问速度很慢&#xff0c;差不多第一次加载得需要40秒&#xff0c;太慢了&#xff0c;这里简单总结一下。 当然&#xff0c;还有一些无用的.MAP文件都可以删除&#xff0c;图片可以在线压缩一下&#xff0c;代码…

我的Serverless实战——大前端趋势之Serverless从入门到天黑

导读&#xff1a;大厂都在做Serverless&#xff0c;他到底是什么东东呢&#xff1f;可能很多人都没有听说过&#xff0c;听说这个是大前端的一个趋势&#xff0c;最近两年比较火&#xff0c;如果你还没有听说过&#xff0c;那你就需要注意啦。今天孙叫兽带大家了解一下Serverle…