Python+robotframework接口自动化测试实操(超详细总结)

embedded/2024/11/14 0:10:12/

🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快  

目前我们需要考虑的是如何实现关键字驱动实现接口自动化输出,通过关键字的封装实现一定意义上的脚本与用例的脱离!

robot framework 的安装不过多说明,网上资料比较太多~

实例:

步骤一:新建项目

测试项目可以目录或文件存储,格式可以用TXT,TSV或HTML格式, 建议项目选择目录和TXT,这样便于管理

步骤二:新建测试套

测试套与测试项目一样,也可以目录和文件存储,格式也可以用TXT,TSV或HTML格式,建议测试套选择文件存储和TXT

步骤三:新建测试用例

————————这一系列的基础支撑组件创建结束后————目录结构为————————

下面介绍在此框架上如何创建一条用例!!!

我们知道!rf是由关键字驱动的,而且是由测试库识别测试对象、操作被测试对象的。

那么怎么使用关键字呢?首先我们需要导入测试库!!!

步骤四:添加lib,此次需要的应用到的测试库都在截图中,其实也可以用urllib2这个库获取url内容信息 

ps:json和requests均为python导入的库!(queryPrdodcut.py为我个人封装的一个库)

可以通过F5件查询lib下的方法,看自己需要使用哪个就选应用哪个

步骤五:方法应用,按住ctrl就有可以介绍的方法

步骤六:输出一条场景的case,下面就是我个人创建的一个case(目前以第三库和自己带的方法输出的case)

1.set variable 代表设置变量

2. catenate代表把多个参数组装在一起

3.requests.get代表使用resquests库通过get请求获取response

4.should be qeual as strings 代表是是否等于期望值是个断言

5.log代表查看内容 

特别说明:通过这个方法可以使用rep.status_code和rep.content

用自带的是不是很繁琐,输入了那么多条才完成了一个请求,因此我封装了一个关于http的get请求库(当然checkValue也是我个人封装的一个函数~)

具体实现如下:

__author__ = 'niuzhigang'#!/usr/bin/env python#*- coding: UTF-8 -*-#encoding=utf-8import jsonimport  requestsclass queryProduct(object):@classmethoddef interfacetest(self,reqadress,reqinterface,reqc,reqd, floattimeout):requrl = reqadress + reqinterfaceprint "print requrl --->"+requrlheader={"content-type":"application/json"}reqparams = {'c':reqc, 'd': reqd}reqparam = json.dumps(reqparams,encoding='utf-8',ensure_ascii=False)print  'print reqparams --->'+reqparamtimeout = float(floattimeout)# get request resultgetrep = requests.get(url=requrl,headers=header, params=reqparams,timeout=timeout)print "get req result --->"+getrep.textreturn getrep.text

那么问题来了?怎么使用自己定义的一个库呢?(具体如何开发有点python基础知识就可以了~我也不说了~)

下面请个人封装的库上场~ 

PS:自己封装的库可以根据自己需求打印日志~实现方法就是函数中 print即可!!!!

说明:为什么写了timeout = float(floattimeout)---->timeout转float,因为通过rf输入后为字符串型,因此需要转float

运行rf结果如下:

步骤七:查看判定结果,执行play键或者F8

ps蓝色的均是超链接可以打开,如:想看具体每个场景case的失败or通过  ------>点击

可以查看)结果如下:

补充:目前只实现了接口的基础架构,后续会维护更多如发送报告,email 微信等 还有更多关键字的封装~~~

当然这个也支持ui自动化如web导入selenium库就可以实现ui自动化

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。


http://www.ppmy.cn/embedded/137353.html

相关文章

19.(开发工具篇mysql库)mysql锁表问题解决

1:查看锁表情况 show OPEN TABLES where In_use > 0; 2:查看所有进程命令 show processlist 3:杀对应进程(通过host,db找对应的ID) kill 57303

GobletNet:基于小波的高频融合网络用于电子显微镜图像的语义分割|文献速递-基于深度学习的病灶分割与数据超分辨率

Title 题目 GobletNet: Wavelet-Based High-FrequencyFusion Network for Semantic Segmentation of Electron Microscopy Images GobletNet:基于小波的高频融合网络用于电子显微镜图像的语义分割 01 文献速递介绍 语义分割是计算机视觉中的一项基础任务&#…

论文解读:CARAT P3

论文解读系列文章目录 文章目录 论文解读系列文章目录一、BR(Boutell等人,2004年)将ML任务分解为多个二分类任务,但忽略了标签之间的关联性。为了利用标签之间的关联性,提出了LP(Tsoumakas和Katakis&#x…

脉冲神经网络(Spiking Neural Network,SNN)学习(1)

目录 一、神经网络 1、神经元 2、激活函数 (1)常见的激活函数:Sigmoid函数 (2)常见的激活函数:ReLU(Rectified Linear Unit)函数 (3)常见的激活函数&…

科技改变生活:最新智能开关、调光器及插座产品亮相

根据QYResearch调研团队的最新力作《欧洲开关、调光器和插座市场报告2023-2029》显示,预计到2029年,欧洲开关、调光器和插座市场的规模将攀升至57.8亿美元,并且在接下来的几年里,将以4.2%的复合年增长率(CAGR&#xff…

微擎框架php7.4使用phpexcel导出数据报错修复

在使用微擎社区版时,用phpexcel导出数据,提示错误,经过搜索后得知是php版本问题。 之前一直是用的5.6现在改成了7.4。所以才发现了这个问题。 然后去gitee上看了下微擎官方的代码,好像也没有对这个问题进行修复。 找了下&#…

【VUE】12、VUE中watch的使用详解

在 Vue.js 中,watch 是一个强大的选项,用于观察和响应 Vue 实例上数据的变化。它允许你定义当某个数据属性发生变化时应该执行的回调函数。这在处理复杂的数据逻辑、异步操作或需要在数据变化时执行特定操作的场景中非常有用。 1、基本用法 watch 选项…

day08|计算机网络重难点之 DNS查询过程、CDN是什么,有什么作用?、Cookie和Session是什么?有什么区别?

day08|计算机网络重难点之 DNS查询过程、CDN是什么,有什么作用?、Cookie和Session是什么?有什么区别? 21.DNS查询过程22.CDN是什么,有什么作用?23.Cookie和Session是什么?有什么区别&#xff1f…