python+robotframework接口自动化测试
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
python+robotframework接⼝⾃动化测试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 )
5.log 代表查看内容
特别说明:通过这个⽅法可以使⽤rep.status_code 和rep.content
⽤⾃带的是不是很繁琐,输⼊了那么多条才完成了⼀个请求,因此我封装了⼀个关于http 的get 请求库(当然checkValue 也是我个⼈封装的⼀个函数~)具体实现如下:
123456789101112131415161718__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}
1920212223242526
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
可以查看)结果如下:
补充:⽬前只实现了接⼝的基础架构,后续会维护更多如发送报告,email 微信等还有更多关键字的封装~~~当然这个也⽀持ui⾃动化如web导⼊selenium库就可以实现ui⾃动化
我也是刚接触rf,希望⼤家以后多多相互交流交流。