接口自动化学习路上初探

技术文档网 2021-04-26

如何做自动化并且落地????

一、思考

1、啥叫做自动化? 2、自动化在什么背景下产生的? 3、自动化的目的和意义是啥? 4、自动化分类有啥? 5、在产品什么状态下去做自动化? 6、自动化要做到啥程度? 7、自动化怎么实现落地? 8、效果和反响是怎样的? 9、周边关联的知识点有哪些需要了解的?(接口,http,返回码等)

(很好奇为啥人人都在喊自动化,公司真的需要么?你真的了解行情么?实际意义在哪里?自动化到底是啥玩意?。。 多么希望有个牛牛带我,现实是一个人硬撸,既然已经踩到狗屎了,那就抹匀一点吧--!)

二、思路

第一步我应该怎么做?

1、首先分析产品适不适合做自动化?

A:我们是B/S结构的产品,web应用,可以做!(前后端分离,微服务分布式架构,restful API)

2、我们为什么要做自动化?

A:节省人力资源,将重复性比较高的事儿交给工具执行,提高效率,回归测试和上线前的冒烟测试保证!(主要是我懒)

3、做哪一块的自动化?做什么类型的自动化?

A:后端,接口为主(保证数据的一致性和准确性比前端还重要),前端界面不稳定,一直迭代中(尤其是创业公司,优先保证质量的同时解决效率问题也是一个重点,从数据层面保证至少比UI层面靠谱N多多多多了。。)

4、选型:代码,测试工具,录制和回放

A:jmeter工具,迭代快且易上手,维护成为较代码低,学习和使用成本低(开源免费,一条龙服务:接口测试,接口自动化,性能测试) (1、录制回放无法满足复杂业务,改大量脚本还不如重写,2、python+requests+unittest写了一些脚本,实际情况是没那么多时间,下一次迭代改了需求又TM要改接口,维护成为太高,导致本身的产品质量也没做到位,这个思路在这个阶段是不对的,换!3、LR不开源,soupUI pro又要钱,真是闲的总不开源,robot Framework+httplibrary可视化没jmeter好,维护成本还高,拉到吧!总结:就你了,jmeter)

5、执行

A:产品:销时利-企业级销售找线索服务web应用,工具:jmeter,接口文档:Showdoc,需求:tapd

可以做的事情:

单个接口测试,接口自动化(单个接口/接口关联)(),性能压测(预测瓶颈)

6、接口自动化都用到了哪些元件?

A:单接口请求,断言判断,参数化(三种方式),函数的应用(cvs等),关联(正则表达式(后置处理器元件)),定时器(控制qps) 连接数据库(JDBC connection configuration),邮件(报告的反馈),监听器(各种形式报告)(查看结果树和聚合报告必备,压测看表格结果树比较方便)

7、落地后产生了哪些效果?

A:对项目而言: 覆盖了70%的场景,找到两个bug(接口参数改了,前后端不同步),内网及时通知了系统异常情况并及时修复成本降低了, 效率的提升,原 提测后到上线 需4天/人,V1.5.2版本之后2.5天/人(包括了响应式,手机端和web端的兼容,工作量其实是原来的三倍); 质量的提升,效率的提升有更多的时间钻研到业务里发掘更多产品的细节,产品也在逐步完善; 对研发来说定位问题更清晰了,问题解决起来比较方便,效率也提高了,双向提升! 对个人而言: 一次挑战,五天从写用例,设计场景,配置到执行,反反复复,一步一个坑,6个脚本算是覆盖了80%以上的场景;

8、还需要了解些啥

接口(自动化的前提是必须熟练的会接口测试),返回码(400,405,413,403,404),请求方式(get,post,patch,put,delete)

总结:

1、凡事还是要先学会分析,做这件事的目的和作用,否则跟风只是在浪费时间,自己懂才是最靠谱的;

2、执行,踩坑,总结,自省,复盘,随时调整是成长路上最快抵达成功的最短路径,虽然有些小痛苦但是很充实--@

3、浮躁,确实想急功近利完成,但是前两天真的就是在浪费时间,越浮躁还空想做完时多么牛逼的一件事,回到现实才发现连一个脚本都写不出来有啥资格还嘚瑟呢,还好及时控制住寄几的妄想症,完成了阶段性任务,太可怕了!!

4、做计划,想做成一件事必须要有规划,接到任务后,我想的竟然是第一阶段怎么办,从没想过好好的规划这件事,无论是第一阶段给出的时间节点还是版本迭代给的deadline都没有,纯硬上,导致后几个版本沾沾自喜浪费时间一直在优化和维护,其实还有很多事可以做比如CICD集成,多个系统之间集成,数据校验,甚至每个元件都应该尝试一下,可能会有更多效率提升的事呢。唉,还是太年轻!

相关文章

  1. 硅谷互联网公司的开发流程

    开发流程包括这么几个阶段: OKR 的设立; 主项目及其子项目的确立; 每个子项目的生命周期; 主项目的生命周期; 收尾、维护、复盘。 第一点,OKR 的设立 所有项目的起始,都应该从 Ro

  2. RESTful-表述性状态转移风格

    REST英文全拼:Representational State Transfer 面向资源编程 资源指的就是一类数据 产品表->就是产品资源 最重要的是如何表示一个资源 地址即

  3. 稳定性思考

    产品功能线 0-1: 当系统从无到有的时候,首要考虑的是研发效率,功能快速迭代,满足快速增长的业务需求 1-10 系统已经搭建起来,此时考虑的是系统的稳定性。 可用性:1.隔离:区分出核心和非核心功能

  4. Supervisor守护队列发邮件

    安装 CentOS: yum -y install supervisor Debien/Ubuntu适用:apt-get install supervisor 配置 修改主配置文件:vim /et

  5. 安装libsodium,让服务器支持chacha20等加密方式

    用chacha20加密方式需要安装libsodium 注意:libsodium从1.0.15开始就废弃了aes-128-ctr yum install wget m2crypto git libsod

随机推荐

  1. 硅谷互联网公司的开发流程

    开发流程包括这么几个阶段: OKR 的设立; 主项目及其子项目的确立; 每个子项目的生命周期; 主项目的生命周期; 收尾、维护、复盘。 第一点,OKR 的设立 所有项目的起始,都应该从 Ro

  2. RESTful-表述性状态转移风格

    REST英文全拼:Representational State Transfer 面向资源编程 资源指的就是一类数据 产品表->就是产品资源 最重要的是如何表示一个资源 地址即

  3. 稳定性思考

    产品功能线 0-1: 当系统从无到有的时候,首要考虑的是研发效率,功能快速迭代,满足快速增长的业务需求 1-10 系统已经搭建起来,此时考虑的是系统的稳定性。 可用性:1.隔离:区分出核心和非核心功能

  4. Supervisor守护队列发邮件

    安装 CentOS: yum -y install supervisor Debien/Ubuntu适用:apt-get install supervisor 配置 修改主配置文件:vim /et

  5. 安装libsodium,让服务器支持chacha20等加密方式

    用chacha20加密方式需要安装libsodium 注意:libsodium从1.0.15开始就废弃了aes-128-ctr yum install wget m2crypto git libsod