RobotFrameWork接口报文测试-----(一)简单demo的实现
最近几个月的工作任务都是通过使用RF工具来搭建服务器端接口的自动化测试,使用python作为2次开发的语言,也是第一次去做这种项目,经验善浅,还是很有可能会走很多的弯路,为此,我希望自己能把每个阶段的进展还有点滴的收获,在此记录,然后能有个总结。
在15年的时候,我做过java web的接口自动化测试的开发工作,使用的技术比较简单:webService的XFIRE框架+testNG+Dom+POI,属于纯java代码构成,结合ant可以单独部署使用,是基于soap协议的(基于http协议),只需要组织好输入的参数,然后将参数传递给本地的接口,本地接口再调用远程服务的接口,就能得到实际返回值,实现比较简单。而这次主要工作如下:组装成一定格式的xml,然后发送给服务器端,然后从reciv_buf内提取需要进行check的字段的数据(实际结果),再将实际测试结果和预期测试结果进行比较。
由于RF是基于关键字进行组织测试用例的,所以在做最初级的demo时,只做了简单的处理,自定义一个lib,提供createSendBuf这个关键字(输入参数:报文id),能返回符合发送给服务器端格式的报文。然后lib内能调用dll文件,与服务器取得联系后,直接把报文发送给服务器,并取得返回结果(dll由开发提供,只需要在py脚本内对dll的导出函数进行调用即可封装成想要的关键字),然后再提供关键字paraseRecivBuf(输入参数:报文内的字段),这个关键字,可以从RecivBuf中拿到特定字段的取值,最后把这个值跟预期的进行对比即可。
第一次做出来的demo,可以用简单粗暴形容。xml数据组装如下:用一个list保存tag的name,然后用一个dict来保存tag的name(key)和tag对应var属性的值(value)。然后组装成xml格式的内容。部分代码如下:
#创建文档对象,文档对象用于创建各种节点。dom1=xml.dom.getDOMImplementation()doc=dom1.createDocument(None,"cmd",None)# 得到根节点root = doc.documentElementroot.setAttribute('id',iid)elements={'ClientType':'1','TerminalType':'1','UserType':'1','AppType':'20','UserLoginType':'1','UserName':'tes','ProductName':'FMS101','UserPassword':'000000','LoginServerAddr':'192.168.5.195:1089'}key=['ClientType','TerminalType','UserType','AppType','UserLoginType','UserName','ProductName','UserPassword','LoginServerAddr']for i in range(len(key)):#elementNode=create_element(doc,element,'var',elements[element])elementNode=doc.createElement(key[i])elementNode.setAttribute('val',elements[key[i]])root.appendChild(elementNode)return root.toxml()
后面返回的xml格式如下:
{send_buf}=<cmd id="30000"><UserName var="loleina"/><UserType var="1"/><UserLoginType var="1"/><AppType var="11"/><ClientType var="1"/><LoginServerAddr var="www.fsmeeting.com:1089"/><UserPassword var="000000"/><TerminalType var="1"/><ProductName var=" FMS101"/></cmd>
就把{send_buf}给底层py发送给服务器就完成了,在rf内的测试用例如下:
简单粗暴的demo就这样完成了,跟领导演示了下,就大致敲定了使用这个框架来完成服务器接口测试了,接下来我就可以展开更细致的工作了。后面问题就来了:
1. 步骤这么多,难道每写一个脚本都要重复一次么?
2. 每个接口的sendbuf的xml的格式是不一样的,id不一样,里面的tag的nodename也是不一样的,这要怎么办?难道每个接口都给写一个createSendBuf么,肯定不是这样的,那要怎样去做?
其实还有很多的问题,比如连接数据库的考虑,执行前连接服务器,数据与测试用例分离考虑,底层py调用导出函数的封装,接口之间的逻辑关系处理等等一系列问题,但是现在急需解决的问题是上面的2个问题,脚本怎么简化,每个接口xml该怎么组织起来(服务器知道xml格式,能将用户输入的参数放到xml里去)。然后看了下网上的各种教程,接下来确定需要做的就是对RF框架的熟悉和python语言本身的学习。
转载于:https://www.cnblogs.com/loleina/p/5312653.html
RobotFrameWork接口报文测试-----(一)简单demo的实现相关推荐
- spring boot 集成springfox,使用swagger对 API 接口进行测试管理的 demo 示例
1. 描述 一个springboot项目集成 springfox 3.0,使用swagger对 API 接口进行测试管理的 demo示例. 环境: IDE(idea):2021.3 JDK:1.8 m ...
- Mondrian 4 测试的简单demo(Saiku简单测试Schema文件)
## 整理此文章方便大家做测试(手写Mondrian Schema自测),不必每次都向saiku上传文件了 ## 关键文件 * foodmart4.xml 测试对应的schema文件 * foodm ...
- 【简书 DC谢老师】JMeter + jenkins + SVN 接口自动化之简单 demo
JMeter工具基础知识篇-工程目录结构及命名规范 如果没有目录结构及命名规范,你压根没法实现自动化的持续集成工作,你将被局限在工具级别的自动化上面,离测试框架或测试平台平台之路遥遥无期. 如果你想成 ...
- 京东个人实名认证接口personalAuth后端简单demo
京东个人实名认证接口personalAuth后端简单demo 近期项目需要接入京东云二要素实名认证接口,并未找到java后端调用试例,简单记录下 使用maven管理 下面为 maven依赖. < ...
- 用python做简单的接口压力测试
一个多月没有更博了,最近研究了一下接口的压力测试,主要来说就是连续频繁的对接口的调用,来测试接口的响应速度.返回结果,找到接口的性能瓶颈,最大承受极限等. 做接口压力测试的方法和工具很多,比较常用的工 ...
- 【实战】RobotFramework接口自动化-全局变量解决保持登录问题
Robotframework是一个利用关键字驱动实现自动化的框架,可以同时实现web.app.接口自动化测试.RF的使用类似于运行一个表格,测试人员往表格内填充文本,即可轻松实现自动化测试. 本文的目 ...
- 你写的接口都测试吗?测什么?怎么测?
欢迎关注方志朋的博客,回复"666"获面试宝典 来源:https://www.cnblogs.com/puresoul/p/5388586.html 本文主要分为两个部分: 第一部 ...
- 后端接口都测试什么?要怎么测?
作者:Glen.He 来源:http://www.cnblogs.com/puresoul/ 本文主要分为两个部分: 第一部分: 主要从问题出发,引入接口测试的相关内容并与前端测试进行简单对比,总结两 ...
- robotframwork接口测试(五)—接口分层测试粗解
个人小结,仅供参考. 接口测试很简单,但是很重要. 可以写代码,也可以用工具进行测试.工具说说就很多了,简单介绍一下我目前用过的几个能够测试接口的工具, Burpsuite:这类偏请求攻击类软件 Fi ...
最新文章
- Windows10上使用VS2017编译OpenCV3.4.2+OpenCV_Contrib3.4.2+Python3.6.2操作步骤
- 6位技术大咖11月倾心巨献,大数据+安全主题的技术分享合集【阿里云MVP 干货集锦】...
- 第十六届全国大学智能汽车竞赛全向组沁恒芯片申请统计情况
- 第四范式先知(Sage)率先通过欧盟GDPR认证
- IdentityServer4系列 | 授权码模式
- Cmd Markdown 编辑阅读器
- win7屏保时间设置_论如何优雅的设置手机和电脑时间屏保!
- php数组超索引,php数组多维索引
- nodeJS之域名DNS
- danfoss 变频器的profinet通讯调试_西门子G120变频器S7-300之间的PN通讯
- CentOS安装打字游戏,typespeed
- 两台计算机之间的远程连接
- When I’m old and dying
- Android开发-模拟器推荐
- Java——博主的学习路线
- CityMaker研修之路 02 伟景行(CityMaker)的倾斜之路
- 小米回应年底裁员:事情确实有,规模没那么大;华为关闭其在俄罗斯的企业事业部|极客头条...
- 传奇私服各类引擎功能介绍
- Atom编辑器活跃用户突破一百万
- Basler相机常见问题