浅谈API测试与UI Auomation一点心得
background:最近两个月被分配做UI automation,原因是换了一套平台,需要重新部署,有些业务需求改了case都跑不过了,我的任务是debug case,把case都跑通。工具是Robot Framework。
当时感觉task相对轻松,因为业务相对简单,只是Case多些,但debug case,应该是我强项(这些年的工作经验里debug 代码了解业务是我的强项,虽然不是什么好的学习代码的习惯吧),不过越debug越傻眼,因为核心逻辑就那几个keywords,有时可能牵一发动全身,而且最最郁闷的是,公司用的是AWS,采用的是Lambda+API Gateway的request方式,而lambda每天有访问次数限制,超过峰值速度就会特别慢,每天下午基本debug不了case,所以要早上早早的到,争分夺秒改case跑case,效率真的很低,每天改四五个case很不错了;而且坑很多,明明看着没问题,debug也发现不了哪儿错,case就是不过,后来发现如果sleep几秒(争分夺秒的秒是这么滴重要,哈哈),case就pass了,可不知道的时候,就会花几个小时。
后来领导说效率太低,要改进测试方法,这可乐坏本宝宝了,因为之前研究过自动化测试,虽然没怎么做过,但我知道我们的automation测试症结在哪儿。
从自动化测试金字塔的角度出发,UI的投入产出比是最低的,我们UI的case很多,但是没有API测试,而且最怕的就是把automation 做成了倒金字塔。于是征得领导同意后我开始研究怎么做UI 的API测试,我是从以下几个方面调研的:学习工具的成本、是否开源、开发的成本、与jenkins的集成、case是否容易管理,自动生成report。后来发现TestNG是最佳选择,但是由于某些原因,TestNG被否了,最终的决定是用HTTPClient jar包自己写Keyword,然后用Robot调用这些keyword。
当时为了验证TestNG的可行性,自己写了个Demo,感觉用TestNG写case很省时间。后来自己写keyword在eclipse下debug的时候发现也还算好,虽然没有TestNG那么高效,但比Robot cost小很多。
可当用Robot调用这些keyword的时候问题来了,而且让我再次感慨Robot还是不方便,原因有以下几点吧
- Eclispe debug方便直观,而Robot只能加log,不容易定位问题。
- 如果是keywod的问题,Eclipse可以直接debug定位,而Robot是对keyword进行了调用,还需要回到eclipse再次debug,debug需要更长的时间
- 最后核心还是Robot写的keyword,而不是java的keyword,这样其实和UI automation没什么太大区别,我感觉cost还是很高。
不过API测试也不是万能的,比如最近新加的一个功能,本来我全用API写的,没有UI Automation,但后来因为一个手工测试,API case跑过了,但UI测试是能catch住的一个bug,所以让我更坚信一句话:无论手工测试还是自动化测试,最核心的还是case的design。怎样用测试理论中的最少的case cover更多的功能,怎样设计case使得UI Automation、API测试更合理化,都是一个功底活儿
转载于:https://blog.51cto.com/1994520/2126659
浅谈API测试与UI Auomation一点心得相关推荐
- 跑三小时的monkey测试该怎么算_浅谈App测试(下)~带音频
文 | Vicky 采编|Emily 浅谈App测试(上)-带音频 一.功能测试 二.性能测试 (1)耗电量 影响因素:定位.传感器.蓝牙,其中CPU.持续定位是两个平台造成耗电的主要因素. (2) ...
- 浅谈API开发安全之生成sign(一)
在对于API的开发中,最让人头疼的就是接口数据暴露,让一些有心之人抓包之后恶意请求,那么如何解决这一弊端呢?自然而然的我们就想到了加密 ,那我们又如何加密,如何解密,才能使之有最安全的效率呢?这是一个 ...
- 浅谈API开发安全之sign有效时间(三)
之前生成的sign和校验sign我们已经完全掌握了,但是仅仅凭借这样的sign是无法满足我们的需求的,如果一个黑客通过抓包抓到你的数据,他可以去修改你的header为这样的,body为那样的,也是可以 ...
- 【软件测试】浅谈API功能测试
什么是API测试 什么是API 关于定义什么的,直接维基可得: API(Application Programming Interface,简称:API),又称为应用编程接口,就是软件系统不同组成部分 ...
- 浅谈API安全的应用
理论基础 API它的全称是Application Programming Interface,也叫做应用程序接口,它定义了软件之间的数据交互方式.功能类型.随着互联网的普及和发展,API 从早期的软件 ...
- 聊聊汽车OTA测试:从OTA测试浅谈汽车电子测试发展趋势
往期回顾:聊聊汽车OTA测试:概述篇 近几年以来,整个汽车行业发生着巨大变革,油电之争尚未落幕,各种新技术新架构已经层出不穷:传统巨头积极转型,新兴势力亦如雨后春笋般涌现.而随着整车功能复杂度不断提升 ...
- 浅谈从混沌工程引出的一点理解
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可. 本作品 (李兆龙 博文, 由 李兆龙 创作),由 李兆龙 确认,转载请注明版权. 起源 Chaos engineer ...
- 浅谈Junit测试中反射和Jmock的应用
最近由于项目的需要,开发后的代码强制编写Junit测试,并且达到一定的coverage probility(主要应付客户).所以,为了达到一定的覆盖率,鄙人不得不在Case中大量使用反射(一般是针对p ...
- 浅谈Spring测试框架+junit4单元测试原理
Spring的主要测试框架核心: 3个接口 1TestContext:负责持有一个当前测试的上下文 2TestContextManger: (1)每次启动都会创建,管理一个TestContext (2 ...
最新文章
- Java---简易自动取货机
- 广播,多播(二)(Broadcasting, Multicasting)
- 正则表达式: 正向预查和负向预查
- 静态成员调用java,Java 反射 静态变量 静态方法 静态成员 调用 获取修饰符 判断是否为静态...
- 基于Maven的S2SH(Struts2+Spring+Hibernate)框架搭建
- JAVA计算机毕业设计在线购书商城系统Mybatis+源码+数据库+lw文档+系统+调试部署
- Selenium+JAVA淘宝登录、商品搜索、添加收货地址,提交订单、付款流程(UI)
- Grammarly:最优秀的日常英文写作辅助工具——论文英文校验
- H5前端的关于像素解释
- 是程序员的都得知道为啥1024是程序员节
- Latex排版技巧:上下方可输入文字的箭头
- 2022牛客寒假训练营1-K冒险公社
- 小猫爪:AWR294x学习笔记02-AWR294x之DPMIPC
- 如何在Linux上创建手册页
- 深度揭秘阿里云函数计算异步任务能力
- 赵丽颖冯绍峰结婚官宣!深扒2人10亿商业关系:女方年入过亿,男方是乐视股东...
- windows记事本自动换行
- 安装打印机共享器(服务器)并用个人电脑连接进行打印
- Java Swing JButton:按钮组件
- BUUCTF-[QCTF2018]X-man-Keyword
热门文章
- C++之初始化列表的一个笔记
- 英语语音中的调核例子_英语歌曲在英语教学中扮演的重要角色
- oracle standby同步,PRIMARY Standby不能同步问题
- html border 边距,css中border-sizing属性的用法
- Android vlc 分析视频,VLC-Android 对视频流(RTSP)做翻转、旋转
- 严格对角占优矩阵特征值_盖尔金圆定理及严格对角占优矩阵(SDD)
- 差速齿轮原理_差速器和差速锁的区别
- umts是移动还是联通_联通与电信合建5G:核心网各自建设 5G频率资源共享
- 可以编写html的文件吗,我可以使用HTML5/JS编写文件吗?
- mybatis 注解 动态SQL