• 1
  • 2
分享

  Robot Framework是一款python编写的功能自动化测试框架。具备良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端或者接口,可以进行分布式测试执行。主要用于轮次很多的验收测试和验收测试驱动开发(ATDD)。

  对于公司层面:现在市面上很多都要求app、web自动化,但是浅层面的都是基于UI自动化,对很多产品来说基于UI的自动化脚本运行过程中容易出现出现找不到定位元素而错误,且版本更新迭代块,脚本维护成本高,此时可以进行接口自动化测试,通过保证接口逻辑,数据传输正确,提高产品的质量。

  本文简单的介绍下通过Robot Framework做一个简单的接口自动化测试实践过程,包括环境准备和简单的一个接口自动化测试实例。

  环境准备

  1.安装依赖的库:requests、requestsLibrary

  1.1使用python2的pip安装requests,安装成功后如下图:

图1.jpg


  1.2使用python2的pip安装requestsLibrary,安装成功后如下图:

图2.jpg


  2.RIDE的测试套件上导入接口测试脚本依赖的库library

图3.jpg


  接口自动化测试的过程一般有以下几个步骤:

  1.接口分析:拿到一个接口,先分析接口的组成和参数含义(一般公司内部都会有接口平台或者可以找开发提供接口数)

  2.编辑脚本:通过关键字编辑脚本内容,除了编辑接口请求的脚本基础上,加上必要的断言脚本,验证请求的结果

  3.运行脚本

  4.测试报告

  接口分析

  接口的请求方式比较常见的是post和get请求。如果公司没有规范的接口文档,可以通过charles抓包分析接口的相关入参和规则,或者请教对应的开发给出各个参数的含义。

  接口请求url:

  http://【域名】/mmcapiproxy//action/fcar/extensionApplyResultNotice

  请求方式:post

  入参:(通过charles获取的数据)

  _en=00、

  q={"saleNo": "SO1810251683600","extensionNo": "2504573445104","result": 1,"msg": ""}

  c=400

  v=100

  脚本内容:

图4.jpg


  脚本说明:

  1. 首先使用关键字create session创建一个会话,连接到服务器的host,脚本格式:

    图5.png

  2. 通过关键字creat dictionary创建一个变量${header},用于存放请求的头文件

  3. 通过关键字creat dictionary创建一变量${param},用于存放多个入参

  4. 通过关键字post request(如果是get方式,则使用关键字get request)发起请求,并将请求的结果返回给变量${response}

  增加断言

  为了验证请求是否成功,需要通过增加断言来验证,一般会断言请求状态码或者响应结果。

  思路:

  将接口请求结果的返回值存储到字典dictionar内

  通过关键字should be equal/ should be equal strings匹配返回值,如果一致,则表示通过,否则表示失败

  导入依赖库:

图6.jpg


  脚本内容:

图7.jpg


  脚本解析:

  1.将请求返回值转换成json格式,${response.json()}

  2.将转化后的返回值赋值给变量${r}

  3.从返回值内取出代表接口运行成功的字段code,赋值给变量${code}

图8.png


  1.从开发那得知,若code=1,则表示接口运行成功,故使用关键字判断变量${code}=1

  图9.png

  脚本运行成功结果:

图10.jpg


  如果开发设定code值是string类型,则需要使用关键字:should be equal strings

  实例:

图11.jpg


  若使用should be equal则会报错如下:

图12.png




作者:绿豆芽呀   

来源:51Testing软件测试网原创

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   一、前言  众所周知,市面上有很多出名的抓包工具,比如Fiddler、Charles、wireshark、mitmproxy;这些抓包软件都各有各的好处,不过今天小编不介绍这几种抓包软件,今天小编要为大家带来的是阿里开源的一款抓包软件-------LightProxy,翻译过来就是光代理,听名字就很牛X的样子,下面我们一起来感受下光代理的魅力。  二、说明  很多人好奇,LightProxy是什么语言写的,其实它是用前端的Elctron来进行打包并生成的,而且他的部分代理是基于Whistle,Whistle也是和Fiddler一样的抓包工具,只不过他是可以运行在nodejs上的抓包工具,设...
            0 0 5392
            分享
          • 一、为什么从开发转测试笔者从2019年5月开始从一名java开发女程序猿正式转为测试开发工程师,原因除了机缘凑巧之外,当然是因为这个行业对测试工程师的要求已经越来越高,简单做些UI脚本录制和回放的自动化,参考度娘写出框架demo却不知道问题出在哪里的测试人员,已经不能满足企业快速迭代产品,保证产品质量的需求。当一个产品越来越庞大、用例越来越多,用例如何设置、脚本如何规划、代码结构如何优化,当需求变动时又如何做到高可维护、高健壮性的问题会接踵而来。所以,一名优秀的测试开发工程师是必须具备优秀的代码能力,甚至知识面是需要比普通的开发人员更广的,比如他需要熟悉自动化测试、服务器部署、网络架构、软件性...
            0 0 3981
            分享
          • 概述自动化测试,顾名思义,指的是利用软件来执行测试用例并比较实际结果与预期结果的过程,以此确认软件产品的性能是否符合要求。那么,传统的手动测试方式是否还存在呢?在数字化时代之初,开发人员和测试人员需要手动执行测试,这种方法被通俗地称作“点击测试”。设想一下,当一个应用含有数百个组件和多个接口时,测试人员需要逐一手动检查它们,这个过程不仅耗时、效率低下,而且极易出错。因此,为了提升测试效率和准确性,自动化测试应运而生,它通过特定的工具自动执行这些重复的测试任务。自动化测试的优势经济高效:长期来看,可以显著降低测试成本。提高开发速度:通过减少手动测试的需求,加速测试过程。减少手动操作:自动进行重复...
            0 0 950
            分享
          •   刷脸支付,刷脸进站,刷脸打卡,一“脸”走天下的时代悄然来临。人脸识别的技术让人们的生活告别繁琐,如何验证人脸识别技术的功能正确性、安全性、识别率等关键问题,在测试领域也逐渐成为至关重要的课题。本文将结合实际工作中的探索与总结,阐述如何针对人脸识别技术开展测试。  一、什么是人脸识别?  人脸识别是基于人的脸部特征信息进行身份识别的一种生物识别技术,用摄像机或摄像头采集含有人脸的图像或视频流,并自动在图像中检测和跟踪人脸,进而对检测到的人脸进行脸部识别的一系列相关技术。人脸识别技术分为人脸检测,人脸跟踪,人脸比对三个部分。通过人脸检测可以在复杂的背景和场景下判断是否存在活体面像,并将其分离出...
            14 15 1217
            分享
          •   一、什么是敏捷测试?  敏捷测试是一种在敏捷开发中进行软件测试的方法。它强调快速、迭代和协作,以确保软件的质量和交付速度。  在敏捷测试中,测试人员需要与开发人员密切合作,尽早参与到项目中,并在整个开发过程中持续测试。测试人员不仅要测试软件的功能,还要关注软件的性能、可用性和安全性等方面。  敏捷测试强调测试的自动化,以提高测试效率和覆盖范围。测试人员通常会使用自动化测试工具来编写和执行测试用例,以便在短时间内获得反馈。同时,敏捷测试也鼓励测试人员采用探索性测试等方法,发现软件中可能存在的问题。  另外,敏捷测试还注重团队的沟通和协作。测试人员需要与开发人员、产品经理和其他相关人员保持良好...
            0 0 432
            分享
      • 51testing软件测试圈微信