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

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

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

环境准备

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

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

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

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

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

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

脚本内容:

脚本说明:

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

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

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

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

增加断言

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

思路:

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

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

导入依赖库:

脚本内容:

脚本解析:

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

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

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

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

脚本运行成功结果:

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

实例:

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

四、结语

随着自动化测试成为测试工程师必备技能之一。拥有了该项技能在面对功能、模块日趋复杂和迭代频繁的软件开发项目时,测试人员可以从容不迫的解决和应对这些问题。本文基于此种考虑,结合作者在项目中的实践分享了接口自动化测试过程中的几点感悟,希望对想要迈入和初步迈入的自动化测试领域的同志们有所帮助。

robotframework自动化测试修炼宝典_软件测试工程师必备:Robot Framework实现接口自动化实践!...相关推荐

  1. robotframework自动化测试修炼宝典_自动化测试之框架Cucumber和RobotFramework的实战对比...

    读完需要 18分钟 速读仅需 6 分钟 本文首发表于 InfoQ:http://www.infoq.com/cn/articles/cucumber-robotframework-comparison ...

  2. 软件测试工程师必备的27个基础技能【快来看看有没有遗忘的】

    混迹于软件测试行业8年有余,这么长时间了,一直想写一篇关于软件测试的经验分享的文章,但苦于工作原因迟迟未下笔.最近终于有了些闲余时间,遂决定把自己的心路历程及所感所想记录下来,与各位同行共勉. 以我多 ...

  3. 自动化测试工具有哪些_软件测试工程师要具备哪些能力和技能?

    软件测试工程师,是老板与开发人员之间的桥梁.因此,除了具备测试技术.测试文档撰写能力外,还需要具备一定的销售沟通能力,业务熟悉能力等. 那,如此全能岗位,需要具备的能力到底有哪些呢? 首先,认真负责, ...

  4. 软件测试python测试步骤_软件测试员必备基础:3分钟带你入门自动化测试!

    目前自动化测试并不属于新鲜的事物,或者说自动化测试的各种方法论已经层出不穷,但是,能够明白自动化测试并很好落地实施的团队还不是非常多,我们接下来用通俗的方式来介绍自动化测试-- 首先我们从招聘岗位需求 ...

  5. 软件测试工程师必备技能:谈谈软件项目中的评审

    前言:你一定听说过这样的一句话:每天不是在开会,就是在开会的路上.这句话其实是对会议多的一种调侃,同时也有一些反感.可以大家想没想过,为什么我们会对一些会议反感?仔细想一想,这些会议是不是都是高效的? ...

  6. 软件安全测试报告模板_软件测试工程师经典面试题

     软件测试工程师,和开发工程师相比起来,虽然前期可能不会太深,但是涉及的面还是比较广的.前期面试实习生或者一年左右的岗位,问的也主要是一些基础性的问题比较多.涉及的知识主要有MySQL数据库的使用.L ...

  7. 专业软件测试工程师必备之软件测试要学什么技能?

    软件测试,作为软件开发最后的关键程序,软件工程师的要求则成为必然.所以作为一名合格的软件测试工程师,则要求掌握程序的方方面面的,虽然不一定各个方面都要精通,但是必须做到了解熟悉.软件测试工程师要学习的 ...

  8. 软件测试师具备的素质_软件测试工程师的素质

    开发一个好的软件,40%以上的时间用在测试上,所以软件测试工程师非常重要,用我们的话来说很吃香.现在从事程序员的人有很多,做测试工程师的人少点,工作压力不太大 测试工程师应该具备的三项基本素质[1] ...

  9. 软件测试师具备的素质_软件测试工程师应该具备哪些素质?

    开发一个好的软件,40%以上的时间用在测试上,所以软件测试工程师非常重要,用我们的话来说很吃香.现在从事程序员的人有很多,做测试工程师的人少点,工作压力不太大 测试工程师应该具备的三项基本素质[1] ...

  10. 15个最好的性能测试工具(软件测试工程师必备)

    在软件测试日常工作中,大家接触得比较多的性能测试工具有LoadRunner和Jmeter,这里整理了web应用程序性能和负载压力能力的最广泛使用的性能测试工具的综合列表. 这些负载测试工具将确保您的应 ...

最新文章

  1. 获取DOM节点的几种方式
  2. 为什么要用unittest
  3. 鸿蒙系统没有优势了吗,“鸿蒙系统”超震撼,带你细数它的优势
  4. 计算机应用技术专业全国排名,计算机应用技术专业全国排名
  5. 【MaxCompute学习】隐式转化的问题
  6. mysql内存报警_[MySQL生产环境] Innodb存储引擎内存报警问题处理过程_MySQL
  7. Java成神之路——javaAgent(插桩,attach)
  8. 鼠标点击层以外的地方层隐藏
  9. 解析FL Studio冻结小技巧
  10. Windows XP14个小技巧
  11. repast HPC初探(运行其自带例子过程中出现的问题)
  12. 计算机应用bsp什么意思,bsp文件是什么?bsp文件怎么打开?
  13. 荷马史诗——解题报告
  14. 洪水填充算法_计算机图形:洪水填充算法
  15. python转换字符编码_python 字符串编码转换
  16. 愤怒的小鸟AR 版终于正式上架!场景超逼真
  17. 游戏开发经验之游戏App是先做大用户量 还是先盈利呢
  18. JS 中文编码格式转换
  19. 队列实现杨辉三角(附详细图解)
  20. 2020 年度开发工具 Top 100

热门文章

  1. NET面试问题及答案
  2. 破解版果冻手机动画主题for WM5 WM6
  3. 字节码指令之异常处理指令
  4. dubbo之SPI扩展机制注解:@Extension注解的作用
  5. SpringCloud整合Feign配置类之间的关系以及feign配置隔离的实现
  6. 了解一下Redis队列【缓兵之计-延时队列】
  7. 《易学Python》——第1章 为何学习Python 1.1 学习编程
  8. jquery下的this,$(this),$(this).get(0);
  9. 应用程序框架实战四:你需要应用程序框架吗
  10. 受宠的背后:安全市场面临重新洗牌