flask + Python3 实现的的API自动化测试平台---- IAPTest接口测试平台(总结感悟篇)
前言:
在前进中去发现自己的不足,在学习中去丰富自己的能力,在放弃时想想自己最初的目的,在困难面前想想怎么踏过去。在不断成长中去磨炼自己。
正文:
时间轴
flask + Python3 实现的的API自动化测试平台---- IAPTest接口测试平台 这篇文章已经发表了两个多月了,IAPTest测试平台从最初17年6月份构想的开始,到17年7月13的正式创立代码仓库,到7月21日第一版的完结,再到7月23日的阿里云的部署。期间多次调试,多次去修改,在十多天的开发中,第一版上线了,因为有之前jiekou-python3的经验,在接口方面的开发进度快了许多,可是部署的过程中不止一次去修改其中的bug,在本地测试完毕为何在liunx的服务器上部署出现了问题,其实很简单,重要的是没有考虑到平台的兼容性,走了许多的坑,在部署后,发到脉脉,qq群里,收到了很多人反馈,接着有开始改进,出来了第二版,第三版,并且在这个过程中,对模板进行了优化,在后续的版本增加了钉钉群通知等功能,最近又增加了权限控制。经过121次的提交,经过了三个重大版本的更新,目前的测试平台已经开过走过了7个多月的时间,受到了很多好评。开源地址:https://github.com/liwanlei/FXTest
历程
从一开始的构思,设想,到现在的120多次的提交,7个多月开发,经过很多人发来的建议,有来自华为,搜狗等公司的一线工作者的建议,也有不少网友和通道人士给来的意见,以及在testerhome等论坛上吸收了很多大佬的优秀的分享。在这么多天的开发过程中,走过了不少的坑,在不断的学习中去不足了自己的不足,在不断的迭代去开发的过程中,自己收获了很多,从一开始自己在写第一版的需求文档的时候。就改动不少,自己也产生了不少的疑惑,就看了所有能够看到的框架,想到了自己所有接触到的接口测试的东西,开始来编写这个框架的第一个需求,中间删改了许多,于是乎,第一版需求在不断的打磨中产生了,如下图。
当时自己把能想到的地方,都能做了一遍,在第一版的雏形中,自己设计出来了想要的功能,推出来第一版后,在网络上收集不少的意见,自己也有了自己的一些新的想法,于是乎,接着去设计了第二版,
相对于第一版,第二版更加让平台显得灵活,也吸取了第一版的教训,并且对原有的代码进行重构,加上一些自己的想法,融合了自己的一些想法,利用自己的休息时间,不会了用百度,上google,迭代出来了2.0,在2.0时期的版本受到了很多人体验,阿里云的每天访问量都会有不少,在2.0时期,也有搜狗等大佬们给了自己的建议,在使用中,有的人给出来实践中遇到的问题,在经过几次指导后,自己技术上提升,对系统有着更加深刻的规划,开始完善3.0版本,
看到3.0的需求,慢慢的平台变得更加灵活,3.0部分需求没有完善,但是定时任务的开发,mock的开发,让现有的系统更加能够运用到工作中去,不断打磨自己的产品,在3.0后,在自己的实际工作中发现,到3.0了,权限系统还不完善,我就接着做了一个分支,思考了一周吧,找到了思路,然后去开发了第一版的 新的权限系统。系统管理员,项目管理员,成员只能看到所属的项目,让平台更加能够在真实的环境的利用。目前项目仍在长期的维护过程中。代码会进一步优化重构。
感悟
不管是之前的学习的python的初衷还是后来学习的过程中的感悟,所学与所做结合起来。 在公司内部不少的小脚本的开发,到独立开发自动化测试,再到回来成型的测试框架。从最初学习python的web框架,到web框架落地到自己的工作中,这一切都是一步一个脚印走出来的。回想开发IAPTest这段日子,充实,忙碌,纠结,无悔。这四个词来概括吧。 充实:因为从日常的测试工作后,在业余抽时间去完成这个的开发,周末大门不出二门不迈的地方,坐那里一写就是一上午,或者一下午,有时候凌晨一两点。百度,google乱翻上阵去找答案,不到四级水平的英语,去读外语,苦难重重,每天都会有收获,每一步都会有成长。回想这段日子,是那么的充实,看着自己的作品被人膜拜,心里是那么的满足。充实的过好每个周末,充实的过好每次业余时间。 忙碌:除了日常的测试,下班后的做饭等,其他时间都去来做这个事,我知道这不是最好的,但是这是努力的结果,这不是最优秀的框架,最优秀的平台。但是锻炼了我让我越发变得优秀。忙碌的时候,不能忘记自己的劳苦,忙碌的日子不可怕,可怕的是停止不前,大胆的往前走。 纠结:中途有过放弃,有过找不到解决的思路,想要停止开发,停止维护,可是冷静下来想想,我不是富二代,不是官二代,不努力怎么成就明天的美好,纠结一番后,我还是会大步往前走。无悔:忙碌充实纠结过去,平台还是出来了,大家的建议也不断到来,大家的赞赏不断到来,获得了掌声,获得了赞许,收获满满。体验到了开发,在测试的角度去尽量让平台日趋完善。
学习怎么落地?
不少网友在qq上问我,怎么将你所学的东西落地,怎么与项目结合起来。其实我一开始也找不到落脚点,后来我慢慢找到了,比如老大让我写个脚本,说监控服务器上面的接口,我说这有啥,可是当我用到了一次,在线上都没有反馈,我的脚本都能给我更好的反馈。在用户没有反馈的时候,我就已经掌握了bug,并且迅速让研发解决,我在想,这不是一次好的落地吗,需求是老大给的,脚本是我写的,落地:监控线上的几个经常出错接口,后来我进行了版本的升级,为何升级,考虑到不方便,接受邮件,公司用钉钉,人人都有钉钉,为何不升级通知到上钉钉呢,翻阅钉钉开发文档,完美的升级过去,后来我实验了一个3分钟达到多少次,再去报警,实例,再次升级过去,进行了两次的迭代,让功能更加完善,更加符合真实的需求。推动两次升级来源于我的想法,就是想简单,就是想让问题更加准确。 怎么落地,怎么让你的所学用到你的工作中,让你的所学使单一重复的测试变得简单,节省时间,减少成本,找到切入点。比如每次测试,不变的模块很多年都不去变化,那么你用自动化去测试,让自己去测改变的部分,节省了时间。 学的能用到才是道理,找到一个合适的点。 再比如压测,我也是在公司线上出现问题后,运维提出来了怎么来解决,可是我学过jmeter。但是没有实战,找到了实战的地方了,你实战不。不落地吗,肯定落地,解决实际问题。去用你的所学解决你遇到问题。用啥学啥,找到落地的点,进入落地阶段。总结落地的成果。
学python还是学java?
这个问题不少人问我,我说python入门是简单的,的确python入门是简单的,目前也比较火,但是越往后你会发现,其实不简单,因为python也是高级语言的。python用途不少,比java干练,但是python也有自己的不足,python还是java的选择根据自己的实际情况来,入门简单就用python,学会python再来学java也简单,反过来,学会java在学python更简单,python简洁,完美。让我更喜欢python,但是最近也在接触java,因为遇到了一些问题来java处理更加合适,不管学习java还是学习python,你要学下去,要坚持下去,要有信心,自己可以学好,要有恒心,坚持学习下去。 java和python都是众多语言之一,二者都可选,二者皆可抛。语言没有好坏,只有适合不适合。选择哪一门语言都有一定的道理。
最后:
学以致用,更好的落地,最大的产出,IAPTest测试平台,是我python学习后的成果,学习后更好的落地,掌握好落地的切入点,让学习的内容和工作的内容形成闭环。学习是枯燥的,但是别人拿高工资是羡慕的,不是官二代,不是富二代,只有靠努力。不要羡慕别人的高工资,因为别人努力了,付出了。学习是件美好的事,前进的道路不是一帆风顺的,但是学习的道路可以变得有滋有味,适当的奖励自己,适当的放松。
遇到问题不要慌,不要急,百度google来帮你。
学习不一定能让你变成很富有,但是学习一定能够改变你。
flask + Python3 实现的的API自动化测试平台---- IAPTest接口测试平台(总结感悟篇)的更多相关文章
- flask + Python3 实现的的API自动化测试平台---- IAPTest接口测试平台
**背景: 1.平时测试接口,总是现写代码,对测试用例的管理,以及测试报告的管理持久化做的不够, 2.工作中移动端开发和后端开发总是不能并行进行,需要一个mock的依赖来让他 ...
- flask + Python3 实现的的API自动化测试平台---- IAPTest接口测试平台,更名:FXTest 接受定制开发(java版开发完毕)
**背景: 1.平时测试接口,总是现写代码,对测试用例的管理,以及测试报告的管理持久化做的不够, 2.工作中移动端开发和后端开发总是不能并行进行,需要一个mock的依赖来让他 ...
- HTTP API 自动化测试从手工测试到平台的演变
不管是 Web 系统,还是移动 APP,前后端逻辑的分离设计已经是常态化,相互之间通过 API 调用进行数据交互.在基于 API 约定的开发模式下,如何加速请求 / 响应的 API 测试,让研发人员及 ...
- Cucumber+Rest Assured快速搭建api自动化测试平台
转载:http://www.jianshu.com/p/6249f9a9e9c4 什么是Cucumber?什么是BDD?这里不细讲,不懂的直接查看官方:https://cucumber.io/ 什么是 ...
- <API自动化测试>Centos-Newman
一.介绍: 在测试和开发中,有一款API测试工具一直占据着武林盟主的地位,那就是声名远播的Google公司的Postman. Postman原先是Chrome浏览器的一个插件,后面发展成了一个应用程序 ...
- Python Flask高级编程之RESTFul API前后端分离精讲 (网盘免费分享)
Python Flask高级编程之RESTFul API前后端分离精讲 (免费分享) 点击链接或搜索QQ号直接加群获取其它资料: 链接:https://pan.baidu.com/s/12eKrJK ...
- HTTP API自动化测试
重构:发现测试的价值 回到起点,测试要解决什么问题,为什么要做API自动化测试平台?做这个平台,不是为了满足老板的提倡全民自动化的口号,也不是为了浮夸的KPI,更不是宣传自动化可以解决一切问题,发现所 ...
- Java Fluent Restful API自动化测试框架
这是一个Restful API自动化测试框架,这是一个能让你写出高可读性测试代码的测试框架! 项目目标 话说目前行业内,Restful API自动化测试框架已经不是稀罕物了,各个语言都有自己的实现机制 ...
- Python3调用Hadoop的API
前言: 上一篇文章 我学习使用pandas进行简单的数据分析,但是各位...... Pandas处理.分析不了TB级别数据的大数据,于是再看看Hadoop. 另附上人心不足蛇吞象 对故事一的感悟: ...
随机推荐
- Linux下查询进程PS或者杀死进程kill的小技巧
假设我们要kill掉tomcat: 那么我们首先需要tomcat的进程号pid: ps -aux | grep tomcat 记下tomcat的PID后,执行:kill PID(tomcat) 好了, ...
- 如何压缩UUID长度?
java中UUID的toString方法,生成的uuid是36位了,在项目中,有时候会显的过长,占用空间比较多,如何能够压缩存储下,又能够保证uuid的唯一性呢? 一. 思路 看源码后,发现UUID的 ...
- Java关于BufferedWriter.newline()换行的注意事项
最近项目中需要导出文件,其实导出文件是一个挺简单的事情.但是却遇到了很奇怪的问题. 首先导出到文件需要用到 BufferedWriter.而换行则是通过 bw.newline() 方法,问题将出在 n ...
- JavaScript es2015经验基础总结
一.作用域 var和es6中的let 的区别. 1.var 是JavaScript中定义全局变量的关键字 2.let 是es6语法中定义变量的关键字 但是let的变量是块级作用域(只能在自己的块里面使 ...
- [译]Why do people write #!/usr/bin/env python on the first line of a Python script?
If you have several versions of Python installed, /usr/bin/env will ensure the interpreter used is t ...
- udev实现热插拔
一.UDEV是什么? Udev是一个针对Linux内核2.6的可提供自动创建的设备节点和命名的解决方法的一个文件系统:其实与/etc/目录下的fstab文件类似 二.Udev如何获取内核这些模块的变化 ...
- Codeforces #448 Div2 E
#448 Div2 E 题意 给出一个数组,有两种类型操作: 选定不相交的两个区间,分别随机挑选一个数,交换位置. 查询区间和的期望. 分析 线段树区间更新区间求和. 既然是涉及到两个区间,那么对于第 ...
- Elastic Stack之kibana入门
为了解决公司的项目在集群环境下查找日志不便的问题,我在做过简单调研后,选用Elastic公司的Elastic Stack产品作为我们的日志收集,存储,分析工具. Elastic Stack是ELK(E ...
- 请求库-request使用
# -*- coding: utf-8 -*- import requests from urllib.parse import urlencode # python模仿百度搜索引擎 # keywor ...
- 在HTML页面中获取当前项目根路径的方法
在HTML页面获取项目根路径的方法: function getRootPath(){ var curPageUrl = window.document.location.href; var rootP ...