• 第一次实操Python+robotframework接口自动化测试


    目前我们需要考虑的是如何实现关键字驱动实现接口自动化输出,通过关键字的封装实现一定意义上的脚本与用例的脱离!

    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也是我个人封装的一个函数~)

    具体实现如下:

    1. __author__ = 'niuzhigang'
    2. #!/usr/bin/env python
    3. #*- coding: UTF-8 -*-
    4. #encoding=utf-8
    5. import json
    6. import requests
    7. class queryProduct(object):
    8. @classmethod
    9. def interfacetest(self,reqadress,reqinterface,reqc,reqd, floattimeout):
    10. requrl = reqadress + reqinterface
    11. print "print requrl --->"+requrl
    12. header={"content-type":"application/json"}
    13. reqparams = {'c':reqc, 'd': reqd}
    14. reqparam = json.dumps(reqparams,encoding='utf-8',ensure_ascii=False)
    15. print 'print reqparams --->'+reqparam
    16. timeout = float(floattimeout)
    17. # get request result
    18. getrep = requests.get(url=requrl,headers=header, params=reqparams,timeout=timeout)
    19. print "get req result --->"+getrep.text
    20. 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,希望大家以后多多相互交流交流!!!

    7天练完接口自动化测试30个实战项目,28K入职字节测试岗。【自动化测试/接口测试/软件测试/性能测试/Jmeter】

    最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

    在这里插入图片描述

    这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

  • 相关阅读:
    【数据结构基础_数组】Leetcode 48.旋转图像
    TLA+学习记录1——hello world
    .Net SemaphoreSlim
    从零开始写 Docker(十六)---容器网络实现(上):为容器插上”网线”
    C 语言数组
    10_9C++
    js的new Function()常用方法
    lsof-文件监控常用命令
    Kerberos环境下 命令行连接kafka 和zk
    S2B2C平台协同管理业务详解 | 数商云S2B2C系统赋能新能源汽车行业高价值增长
  • 原文地址:https://blog.csdn.net/2301_78276982/article/details/133207772