python+robotframework接口自动化测试

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

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请求获取response4.should be qeual as strings 代表是是否等于期望值是个断言

5.log代表查看内容

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

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

具体实现如下:

|----------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | __author__ ``= 'niuzhigang' #!/usr/bin/env python #*- coding: UTF-8 -*- #encoding=utf-8 import json import requests class queryProduct(``object``): ``@classmethod ``def interfacetest(``self``,reqadress,reqinterface,reqc,reqd, floattimeout): ``requrl ``= reqadress ``+ reqinterface ``print "print requrl --->"``+``requrl ``header``=``{``"content-type"``:``"application/json"``} ``reqparams ``= {``'c'``:reqc, ``'d'``: reqd} ``reqparam ``= json.dumps(reqparams,encoding``=``'utf-8'``,ensure_ascii``=``False``) ``print 'print reqparams --->'``+``reqparam ``timeout ``= float``(floattimeout) ``# get request result ``getrep ``= requests.get(url``=``requrl,headers``=``header, params``=``reqparams,timeout``=``timeout) ``print "get req result --->"``+``getrep.text ``return getrep.text |

  

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

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

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

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

运行rf结果如下:

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

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

可以查看)结果如下:

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

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

Python接口自动化测试零基础入门到精通(2023最新版)

相关推荐
2601_9679801113 分钟前
使用gensim处理文本(1)语料库与词向量空间
python·自然语言处理·gensim·词向量·文本分析
starzy199023 分钟前
深入理解Scala隐式值:编译期自动装配
开发语言·后端·scala
布莱克60541 分钟前
Swift 条件语句详解:从 if 到 switch 的完整指南
开发语言·ssh·swift·switch·条件语句·guard·if
吴可可1231 小时前
ActiveX调用WScript.Shell原理揭秘
开发语言
3095566661 小时前
股票接口返回 404 与空数组的排查笔记:证书状态与级别参数
java·笔记·python·ios·iphone·股票数据api·股票数据接口
2601_967980112 小时前
世界上最好的Python编辑器是什么?我投PyCharm一票
ide·python·pycharm·数据科学·jupyter notebook
晴天的雨.9922 小时前
【C++】继承篇
java·开发语言·c++
SomeOtherTime2 小时前
第 1 讲:内存布局与所有权解剖——栈帧、胖指针与“移动/拷贝”在汇编层面的真实面目
java·开发语言·汇编
wuyk5552 小时前
Spider-第09讲-三格式落盘CSV-Excel-JSON
爬虫·python·json·excel
青少儿编程课堂2 小时前
蓝桥杯青少组图形化 + 全国青少年信息素养大赛 + 电子学会图形化考级:校园大富翁经营闯关解析
c++·python·算法·bfs·信息学竞赛