机器人接口自动化用例编写

  

如何手写机器人自动化用例,网上虽然有一大堆教程,但都是关于骑的,对于如何从脚本角度来写,一直零零散的散,语焉不详,本文以互联网最常见的API接口自动化为例,给出方向性指引,文字不多,足够你理解,想要深入,请依循文中的文字,再去百度,慢慢体会,逐步精深。

  
  

用例编写前提:已经部署好了机器人/python环境

     

第一个http接口

  
 <代码类="语言python "> * * * * * *设置
  图书馆收藏
  图书馆的过程
  图书馆RequestsLibrary
  
  * * * * * *变量
  ${}域http://10.xx.xx.xx: 8091
  $ {URI}/测试/后端/xxxxlogin
  ${头}{“内容类型”:“application/json”}
  $ {USER} {“accountType”:“1”,“phonenumStr”:“iamusername”,“密码”:“iampassword”}
  $ {LIST_ANIMALS}(“猫”,“狗”)
  
  * * * * * *测试用例
  我第一次http测试用例
  创建会话myhttp ${域}
  $ {}uri设置变量$ {uri}
  #头一定要转成json,不然数据传不过去
  ${头}为json ${头}
  $ {postdata}为json ${数据}
  $ {resp} post请求myhttp uri=$ {} uri https://www.yisu.com/zixun/data=$ {postdata}头=${头}
  
  #校验http的状态
  应该等于整数200 $ {resp.status_code}
  #打印调测信息
  #日志$ {resp.content}
  #日志$ {json}
  #日志$ {json [0]}
  #日志$ {json [1] (" id ")}
  
  $ {json}为json $ {resp.content}
  #校验返回数据的关键值
  应该等于2.0作为字符串$ {json [1] (“jsonrpc”)}
   
  

多步操作

  

所有的返回值都是字符串类型,转成json后就可以像字典型一样随意取用了

  
 <代码> $ {json} json $ {resp.content}  
  

把取到值当成下一次调用的入参

  
  

建议每个testcase只测试一个功能,接口测试阶段,不要构造过于复杂的场景(用例代码超过一屏将被视为复杂,需要拆分)

     

结果校验

  
  

请求http获得的返回都是字符串类型,解析成json才可以自由取用值
提供多种校验函数如下:

  
 <代码>应该等于整数
  应该平等的数字
  应该等于作为字符串
  应该是真的
  应该是空的
  应该包含
  应该包含任何
  #不也支持
  不应该等于为整数
  不应该平等的数字吗
  不应该等于作为字符串
  不应该是正确的
  不应该是空的
  不应包含
  不应该包含任何代码 之前
  
  

数据驱动

  

机器人宣称支持数据驱动,支持按照模板从表格读数据来跑用例,但是问题是,如果要对数据表格里的情况下做拣选和拆分就会无力了,所以,数据驱动适合比较大规模的协议测试,而对于有细力度的统计情况的需求是不好用的,我们的建议是用测试数据分散在testcase里,保持情况下的独立性和灵活性,如果确实有大量的手工操作的话,提供小工具自动创建testcase。

  

数据驱动即为定义好流程(模板),然后就可以按照参数罗列形成用例了,每一条数据都会独立执行

  
 <代码> * * * * * *测试用例
  无效的用户名
  [标记]迭代3吸烟
  (模板)和无效的登录凭证应该失败
  invalidname qwe123
  091931年invalidpassword
  
  * * * * * *测试用例
  登录成功
  [标记]迭代3抽芯
  (模板)登录成功
  068970年qwe123
  052255年qwe123  
  

前置条件(可选)

  
  

一个用例文件中包含很多testcase,我想统一加些动作该怎么办?框架提供两个方法,如果是前置条件(每个用例开始前执行)就用设置,在设置里编写你的动作即可,如果动作很复杂,可以做成关键字调用即可,就像下面一样:

     
 <代码>
  * * * * * *设置
  测试设置配置
  
  * * * * * *关键字
  获取配置
  日志正在初始化……
  设置套件变量${配置}{“env”:“uat”,“用户”:“哈哈”}
   
  

清理动作(可选)

  
  

如果是后置条件(每个testcase结束后调用),就用推倒,样例如下:

     
 <代码>
  * * * * * *设置
  测试拆卸做清洁
  
  * * * * * *关键字
  做清洁
  日志正在清理… 
  

关键字驱动

  
  

框架提供自定义的关键字方案,只需要在关键词下面书写你的逻辑动作即可,关键字可以是英文,也可以是中文,顶格写,不限制空格和特殊字符,你可以像书写自然语言一样写用例代码啦

机器人接口自动化用例编写