• 第一次实操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,希望大家以后多多相互交流交流!!!

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

    文档获取方式:

    这份文档,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

    以上均可以分享,只需要你搜索vx公众号:程序员雨果,即可免费领取

  • 相关阅读:
    实现了Spring的Aware接口的自定义类什么时候执行的?
    Pytorch模型训练实用教程学习笔记:四、优化器与学习率调整
    React实现一个拖拽排序组件 - 支持多行多列、支持TypeScript、支持Flip动画、可自定义拖拽区域
    Libuv的安装及运行使用
    数据结构之查找
    web前端网页设计作业—个人网页(游戏主题)(html+css+js)
    Win11杜比全景声无法正常运行的解决方法教学
    【计算机网络】网络编程接口 Socket API 解读(3)
    使用NTP配置集群时间同步(CentOS 7.9操作系统)
    Netty(二)- NIO三大组件之Buffer
  • 原文地址:https://blog.csdn.net/2301_77645834/article/details/132987446