zoukankan      html  css  js  c++  java
  • 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也是我个人封装的一个函数~)

    具体实现如下:

    __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自动化

    我也是刚接触rf,希望大家以后多多相互交流交流!!!

  • 相关阅读:
    Hamler 0.2 正式发布
    Xamarin.Forms 解决ListView高度问题
    Xamarin.Forms中DependencyService的使用
    Xamarin.Forms Android 底部导航栏
    修改UITabBar样式 TintColor 和 Selected Tab Images in Xamarin.Forms iOS
    Xamarin.iOS中使用MvvmLight框架
    Xamarin.iOS 代码中添加约束练习
    Xamarin.Android 手势密码
    UWP 手势密码实现
    Xamarin.iOS 手势密码
  • 原文地址:https://www.cnblogs.com/nzg-noway/p/6651957.html
Copyright © 2011-2022 走看看