RobotFramework接口自动化的设计思想

Stella981
• 阅读 569

自动化终极思想:以目标为导向,不断抽象沉淀,消除冗余,做到测试数据与测试代码分离

1、自动化测试对人员的要求
1、对测试人员的技能要求较高,需要自己写测试代码或看得懂别人的测试代码;
2、需要根据版本迭代进行更新测试用例,有一定的维护成本;
3、自动化能发现的缺陷数(bug)远远少于手工测试,产出低;
4、自动化测试的产出价值在于长期的回归测试,短期内发挥的作用不明显;

2、为何要自动化(借助自动化能解决什么问题?)
1、测试资源紧张,手工测试可能覆盖不全,容易错过一些边界异常校验;
2、释放测试人力,提高回归测试的效率,缩短回归测试时间;
3、实现手工测试无法完成的测试任务;
4、加深业务/流程认知,有助于发现系统中隐藏的问题;

3、设计自动化用例的原则
基本原则:
1、自动化测试用例的范围必须是相对核心的业务流程,即覆盖主体功能的核心测试点和重复执行率较高的模块;
2、在测试脚本和被测代码都保持不变的情况下,测试用例的结果应该是稳定的,这一点非常重要;
3、除非是必要的情况,否则任何用例都应当避免做持久化的操作,以保证环境始终是干净的;
4、Once Written, Run Anytime as Desired ;(测试用例的健壮性)
5、不是所有的接口测试用例都可以使用自动化测试来实现,自动化测试替代不了手工测试,两者的有效结合是保证项目质量的关键。
6、回归测试场景中,测试用例的选择一般以正向为主,逆向为辅,不过分追求100%覆盖;

PS:自动化用例设计原则

1、保持case的独立性
2、保持case的可迁移行
3、提高case的执行效率

4、接口测试优先级原则
1、外部接口优先级高
2、内部接口优先级低

5、自动化用例编写规范:测试代码层
1、命名规范:Keyword命名,第一个单词应以小写字母开头,后面的单词则用大写字母开头,驼峰命名法;
如:queryUserInfo、queryOperatorInfo、queryOperatorDetails等

2、参数命名:参数的命名规范和方法的命名规范相同,请在尽量保证参数名称为一个单词的情况下使参数的命名尽可能明确。
如:queryUserInfo,明确这是一个查询用户信息的接口

3、全局变量命名:如果一个变量名称全局都在使用,可以考虑用大写的字母“G”(或是Global)来定义。
如:G_Env_Url、Global_Env_Url (ip地址+端口)

4、testCase规范:测试用例尽量使用TAG标签内容来标记,验证回归时优先验证正常接口的调用

PS:以上所写纯属个人总结

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
API 小达人 API 小达人
1年前
Eolink Apikit 如何进行自动化测试?零代码!无门槛!快速上手!
作为测试人员,在进行比较大的项目时,使用自动化测试能帮助我们事半功倍地完成测试工作,提高测试效率,缩短开发周期。EolinkApikit“零代码”自动化测试,帮助开发人员创建自动化测试,而不需要编写代码,是人人皆可使用的“零代码”自动化测试平台。在EolinkApikit的自动化测试应用中,所有的测试用例都是以项目维度来进行管理,一个自动化测试项目可以从多个API文档项目中引用API信息来创建API测试用例。
API 小达人 API 小达人
1年前
如何进行自动化测试,提高测试效率?
作为测试人员,在进行比较大的项目时,使用自动化测试能帮助我们事半功倍地完成测试工作,提高测试效率,缩短开发周期。EolinkApikit为测试工程师提供API文档管理、快速接口调试、测试用例管理、及自动化测试等功能。协作测试工程师快速查看API文档及变更,以及更快的进行接口测试和自动化测试工作,降低测试用例编辑成本,提升自动化测试效率。
Java服务总在半夜挂,背后的真相竟然是... | 京东云技术团队
最近有用户反馈测试环境Java服务总在凌晨00:00左右挂掉,用户反馈Java服务没有定时任务,也没有流量突增的情况,Jvm配置也合理,莫名其妙就挂了
Python进阶者 Python进阶者
11个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这