死siua11 发表于 2018-8-14 09:10:50

python+robot framework接口自动化测试

  python+requests实现接口的请求前篇已经介绍,还有不懂或者疑问的可以访问
python+request接口自动化框架
  目前我们需要考虑的是如何实现关键字驱动实现接口自动化输出,通过关键字的封装实现一定意义上的脚本与用例的脱离!
  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 代表是是否等于期望值是个断言(可以参考http://blog.sina.com.cn/s/blog_7f66d4ea0101k3fl.html)
  5.log代表查看内容
  特别说明:通过这个方法可以使用rep.status_code和rep.content

  用自带的是不是很繁琐,输入了那么多条才完成了一个请求,因此我封装了一个关于http的get请求库(当然checkValue也是我个人封装的一个函数~)
  具体实现如下:
1234567891011121314151617181920212223242526__author__ = 'niuzhigang'#!/usr/bin/env python#*- coding: UTF-8 -*-#encoding=utf-8    import jsonimportrequests 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通过------>点击
可以查看)结果如下:
页: [1]
查看完整版本: python+robot framework接口自动化测试