• 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软件测试网原创

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 自从开始做API开发之后,我就在寻找合适的API测试工具。一开始不是很想用Chrome扩展,用的WizTools的工具,后来试过一次Postman之后就停不下来了,还买了付费的Jetpacks。推出TeamSyncBeta之后我又把这个工具推广给团队,作为API文档使用。看到中文网络上关于这个工具的文章并不多,于是决定写一篇小文介绍一下。一、基本功能Postman的功能在文档中有介绍。不过文档略啰嗦,这里简单介绍一下主界面,入门功能就都提到了。Collections:在Postman中,Collection类似文件夹,可以把同一个项目的请求放在一个Collection里方便管理和分享,Coll...
            0 0 937
            分享
          • 第三方测试项目管理分享之-成功的项目都是相似的,“不成功的项目”各有各的特点先上图,感受一下。说明:我总结的这个项目管理特点,主要是来自于第三方外部测试,不同于企业内部自己的测试项目。简单说一下。从对象来说,我方,对方,第三方。从配合方面来说,外部和内部。先说对方的外部配合。第三方的测试主要来自于委托,即对方是发起人。首先需要明确对方的测试需求、进度需求,明确对接人的职责,明确测试环境。再说我方的外部配合,首先要判断,对方的测试需求是否在我方的实验室能力范围内,判断对方的测试需求、进度、环境配置等是否满足测试条件,在实施过程中,还需要经常判断对方的测试需求是否有变更,如果有变更,需要再判断,是...
            1 1 643
            分享
          •   前言  文章内容为本人这三年来在嵌入式软件测试(黑盒)上的一些积累吧,说起来也挺快的,毕业三年的时间就这样过去了,在两家公司工作过(现在这家是第二家),这几年的测试项目基本都是围绕着嵌入式软件,同时需要兼顾测试App端、Web端功能、Web后端接口(Postman),只是测试业务重心还是在嵌入式软件上。  为什么测试的这么杂呢,其实这些全部加起来只是一个产品,只是因为目前就只有我一个测试,所以整套系统都是由我一个人来测。  就拿我现在这家公司做的一个视频会议系统来说吧,整套系统包含有硬终端(Linux端)、App端、Web端(用于后台账户/会议管理等)、PC端组成。  接触过嵌入式软件测试...
            0 0 472
            分享
          • 单元测试单元测试是应用程序测试策略中的基本测试,通过对代码进行单元测试,可以轻松地验证单个单元的逻辑是否正确,在每次构建之后运行单元测试,可以帮助您快速捕获和修复因代码更改(重构、优化等)带来的回归问题。一、单元测试的目的以及测试内容为什么要进行单元测试提高稳定性,能够明确地了解是否正确的完成开发;快速反馈bug,跑一遍单元测试用例,定位bug;在开发周期中尽早通过单元测试检查bug,最小化技术债,越往后可能修复bug的代价会越大,严重的情况下会影响项目进度;为代码重构提供安全保障,在优化代码时不用担心回归问题,在重构后跑一遍测试用例,没通过说明重构可能是有问题的,更加易于维护。单元测试要测什...
            0 0 1382
            分享
          •   据报道,美国国家劳动关系委员会的记录显示,两名特斯拉员工12月初向该委员会投诉称,他们因抱怨公司的政策而遭到非法解雇。  根据提交的文件,这两名员工表示,他们在讨论公司的劳动条件后遭到解雇。他们谈论的话题包括“特斯拉未能执行防止骚扰的政策,以及在新冠病毒疫情后重返办公室的政策执行情况”。根据美国劳动法,讨论劳动条件的行为应当受到保护。  特斯拉尚未对此做出回应。  根据他们律师提供的新闻稿,这两名员工参与起草了给特斯拉高管团队的邮件。他们在内部聊天群讨论相关情况后遭到解雇,当时这封邮件尚未开始传阅。  其中一封信呼吁特斯拉调整5月份宣布的严格的重返办公室政策,该政策要求特斯拉所有员工每周在...
            0 0 645
            分享
      • 51testing软件测试圈微信