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还是不方便,原因有以下几点吧

  1. Eclispe debug方便直观,而Robot只能加log,不容易定位问题。
  2. 如果是keywod的问题,Eclipse可以直接debug定位,而Robot是对keyword进行了调用,还需要回到eclipse再次debug,debug需要更长的时间
  3. 最后核心还是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一点心得相关推荐

  1. 跑三小时的monkey测试该怎么算_浅谈App测试(下)~带音频

    文 | Vicky 采编|Emily 浅谈App测试(上)-带音频 一.功能测试​ 二.性能测试 (1)耗电量 影响因素:定位.传感器.蓝牙,其中CPU.持续定位是两个平台造成耗电的主要因素. (2) ...

  2. 浅谈API开发安全之生成sign(一)

    在对于API的开发中,最让人头疼的就是接口数据暴露,让一些有心之人抓包之后恶意请求,那么如何解决这一弊端呢?自然而然的我们就想到了加密 ,那我们又如何加密,如何解密,才能使之有最安全的效率呢?这是一个 ...

  3. 浅谈API开发安全之sign有效时间(三)

    之前生成的sign和校验sign我们已经完全掌握了,但是仅仅凭借这样的sign是无法满足我们的需求的,如果一个黑客通过抓包抓到你的数据,他可以去修改你的header为这样的,body为那样的,也是可以 ...

  4. 【软件测试】浅谈API功能测试

    什么是API测试 什么是API 关于定义什么的,直接维基可得: API(Application Programming Interface,简称:API),又称为应用编程接口,就是软件系统不同组成部分 ...

  5. 浅谈API安全的应用

    理论基础 API它的全称是Application Programming Interface,也叫做应用程序接口,它定义了软件之间的数据交互方式.功能类型.随着互联网的普及和发展,API 从早期的软件 ...

  6. 聊聊汽车OTA测试:从OTA测试浅谈汽车电子测试发展趋势

    往期回顾:聊聊汽车OTA测试:概述篇 近几年以来,整个汽车行业发生着巨大变革,油电之争尚未落幕,各种新技术新架构已经层出不穷:传统巨头积极转型,新兴势力亦如雨后春笋般涌现.而随着整车功能复杂度不断提升 ...

  7. 浅谈从混沌工程引出的一点理解

    本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可. 本作品 (李兆龙 博文, 由 李兆龙 创作),由 李兆龙 确认,转载请注明版权. 起源 Chaos engineer ...

  8. 浅谈Junit测试中反射和Jmock的应用

    最近由于项目的需要,开发后的代码强制编写Junit测试,并且达到一定的coverage probility(主要应付客户).所以,为了达到一定的覆盖率,鄙人不得不在Case中大量使用反射(一般是针对p ...

  9. 浅谈Spring测试框架+junit4单元测试原理

    Spring的主要测试框架核心: 3个接口 1TestContext:负责持有一个当前测试的上下文 2TestContextManger: (1)每次启动都会创建,管理一个TestContext (2 ...

最新文章

  1. Java---简易自动取货机
  2. 广播,多播(二)(Broadcasting, Multicasting)
  3. 正则表达式: 正向预查和负向预查
  4. 静态成员调用java,Java 反射 静态变量 静态方法 静态成员 调用 获取修饰符 判断是否为静态...
  5. 基于Maven的S2SH(Struts2+Spring+Hibernate)框架搭建
  6. JAVA计算机毕业设计在线购书商城系统Mybatis+源码+数据库+lw文档+系统+调试部署
  7. Selenium+JAVA淘宝登录、商品搜索、添加收货地址,提交订单、付款流程(UI)
  8. Grammarly:最优秀的日常英文写作辅助工具——论文英文校验
  9. H5前端的关于像素解释
  10. 是程序员的都得知道为啥1024是程序员节
  11. Latex排版技巧:上下方可输入文字的箭头
  12. 2022牛客寒假训练营1-K冒险公社
  13. 小猫爪:AWR294x学习笔记02-AWR294x之DPMIPC
  14. 如何在Linux上创建手册页
  15. 深度揭秘阿里云函数计算异步任务能力
  16. 赵丽颖冯绍峰结婚官宣!深扒2人10亿商业关系:女方年入过亿,男方是乐视股东...
  17. windows记事本自动换行
  18. 安装打印机共享器(服务器)并用个人电脑连接进行打印
  19. Java Swing JButton:按钮组件
  20. BUUCTF-[QCTF2018]X-man-Keyword

热门文章

  1. C++之初始化列表的一个笔记
  2. 英语语音中的调核例子_英语歌曲在英语教学中扮演的重要角色
  3. oracle standby同步,PRIMARY Standby不能同步问题
  4. html border 边距,css中border-sizing属性的用法
  5. Android vlc 分析视频,VLC-Android 对视频流(RTSP)做翻转、旋转
  6. 严格对角占优矩阵特征值_盖尔金圆定理及严格对角占优矩阵(SDD)
  7. 差速齿轮原理_差速器和差速锁的区别
  8. umts是移动还是联通_联通与电信合建5G:核心网各自建设 5G频率资源共享
  9. 可以编写html的文件吗,我可以使用HTML5/JS编写文件吗?
  10. mybatis 注解 动态SQL