51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 6063|回复: 0
打印 上一主题 下一主题

[原创] Robot Framework实现接口自动化实践

[复制链接]
  • TA的每日心情
    无聊
    3 天前
  • 签到天数: 1050 天

    连续签到: 1 天

    [LV.10]测试总司令

    跳转到指定楼层
    1#
    发表于 2020-12-2 10:28:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    1测试积点
    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,脚本格式:

     1.通过关键字creat dictionary创建一个变量${header},用于存放请求的头文件  2.通过关键字creat dictionary创建一变量${param},用于存放多个入参
      3.通过关键字post request(如果是get方式,则使用关键字get request)发起请求,并将请求的结果返回给变量${response}
      增加断言
      为了验证请求是否成功,需要通过增加断言来验证,一般会断言请求状态码或者响应结果。
      思路:
      将接口请求结果的返回值存储到字典dictionar内
      通过关键字should be equal/ should be equal strings匹配返回值,如果一致,则表示通过,否则表示失败
      导入依赖库:

    脚本内容:

     脚本解析:  1.将请求返回值转换成json格式,${response.json()}
      2.将转化后的返回值赋值给变量${r}
      3.从返回值内取出代表接口运行成功的字段code,赋值给变量${code}

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

    脚本运行成功结果:

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

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






    附件: 您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-24 13:44 , Processed in 0.066265 second(s), 22 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表