python+requests 实现接口的请求前篇已经介绍,还有不懂或者疑问的可以访问
目前我们需要考虑的是如何实现关键字驱动实现接口自动化输出,通过关键字的封装实现一定意义上的脚本与用例的脱离!
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 也是封装的一个函数~)
具体实现如下:
- __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 基础知识就可以了~ 我也不说了~)
下面请个人封装的库上场~
步骤七:查看判定结果,执行 play 键或者 F8(ps 蓝色的均是超链接可以打如:想开具体没个场景 case 点击
可以查看)结果如下:
补充:目前只实现了接口的基础架构,后续会维护更多如发送报告,email 微信等 还有更多关键字的封装~~~
当然这个也支持 ui 自动化如 web 导入 selenium 库就可以实现 ui 自动化
来源: http://www.cnblogs.com/nzg-noway/p/6651957.html