如何手写机器人自动化用例,网上虽然有一大堆教程,但都是关于骑的,对于如何从脚本角度来写,一直零零散的散,语焉不详,本文以互联网最常见的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结束后调用),就用推倒,样例如下:
引用><代码> * * * * * *设置 测试拆卸做清洁 * * * * * *关键字 做清洁 日志正在清理…代码>关键字驱动
框架提供自定义的关键字方案,只需要在关键词下面书写你的逻辑动作即可,关键字可以是英文,也可以是中文,顶格写,不限制空格和特殊字符,你可以像书写自然语言一样写用例代码啦
机器人接口自动化用例编写