VantPy自动化测试框架
1.必须要谈的一点,就是我们学习自动测试不是用来炫耀的,而是用来提升自身能力的。
2.这个框架不是通用框架,只是在这里灌输这个框架的思想,让每个人写框架都易如反掌
3.如果没有python基础的同学,希望能够先学习python基础知识,因为后面学的会越來越乱
4.学完之后,你能学到当前热门的自动化测试知识,你再也不是测试小白,提升了自身解决问题的能力。
5.框架是使用python3写的
我们先看一下这个框架到底有什么吧
现在我们来看看每个文件的内容吧。
Autolt文件夹
第一个Autolt文件,这个文件的内容是,当你要在某个页面中要上传文件/图片/其他文件时候,python没有一个好的方法可以提供给你,这时候我们就要用到第三方的软件,将我们要上传的文件打包成一个路径,给python调用就可以了。使用到的知识:Autolt的使用
Common文件夹
第二个Common文件夹,这个文件夹的内容是,将我们使用的共同文件都放在这里了,我现在就把测试用到的接口内容都放在里面了,还有就是selenium的二次重构也放在这里。使用到的知识:python接口测试,获取接口内容;selenium二次开发
Data文件夹
第三个Data文件夹,这个文件夹的内容是,直接理解为数据。是的,这个文件夹放的就是我们的数据,在我们在测试使用的数据,我们就可以全部都放在这里了。使用的知识:python openpyxl 的使用,在当前很多框架中都是使用xlrd和xlwt两个库并用,可是openpyxl已经足够了,又可以读又可以写
Deletest文件夹
第四个Deletest文件夹,这个文件夹的内容是,我个人写的一个删除手机号码的接口而已,这个文件夹之所以提供给大家,是因为当我们在进行自动化注册,或者是其他使用到的真实数据时,我们不能每次都跟开发沟通,删除该账户,再去自动化测试,这样使的我们工作的时间加长了好多。使用的知识:python接口post请求
Image文件夹
第五个Image文件夹,这个文件夹的内容是,将我们每次进行的测试用例测试的结果进行截图保存,这使得我们自动化测试加多了一层验证操作,提高我们测试脚本的质量。使用的知识:python的screen方法
Pages文件夹
第六个Pages文件夹,这个文件夹的内容是,我们要测试的网页的所有元素都放在这里了,这提高了我们测试的时候使用的元素操作。让我们不用没有都对同一个元素进行多次的操作了。我们只需要去调用就可以了。使用到的知识:调用selenium的方法,定位页面元素;unittest库的单元测试校验。
Result文件夹
第七个Result文件夹,这个文件夹的内容是,我们测试之后生成的测试报告,很多时候我们只是把HTMLTestRunner放在python的包里,这样对于我们后期进行的持续集成测试是不友善的,所以,我们必须将本身的包和测试服务器的包完全分开。使用的知识:HTMLTestRunner的调用和Boostrape的使用。
TestCase文件夹
第八个TestCaase文件夹,这个文件夹的内容是,我们要进行的测试步骤操作,很多人希望可以使用excel文件写测试用例,我的建议是,文件操作会使我们对代码的依赖减弱,所以,还是好好地写测试代码吧。使用的知识:调用selenium的方法,执行测试步骤,unittest库的使用。
index.py文件
这个index.py文件,将我们所有的测试用例都集成在一起,每次我们需要全量测试,我们只需要执行这个文件就可以了。使用的知识:编写测试集,调用HTMLTestRunner生成测试报告,调用screen方法生成截图,unittest库的使用。
看完上面的内容,这就是坚持学习自动化测试需要学到的内容,缺少某一部分的知识都无法完成自动化测试的工作。
说在后面
自动化测试不等于全自动化测试,自动化测试只是帮助我们执行我们已经测试过的内容,它无法帮我们测试未知的错误。那么自动化测试的作用在哪里呢?
1.提高测试的效率:
传统测试:我们项目每更新一次版本,我们都需要手动去操作一遍,随着内容功能的增加,我们测试的的时间也随之增加,很多功能我们上一版本已经测试过了,这个版本我们还必须要手动去测试,这使得我们工作时间加长了
自动化测试:全量回归测试,我们每更新一次版本,测试脚本都会自动去执行上一版本的功能,生成测试报告,供给我们测试人员查看,那么我们是不是不用测试了?错的,我们还需要测试,但是我们更多时间是花在新开发的功能上和上一版本出现的bug上了,这就是我们需要的探索性测试。
2.提高测试人员的代码能力:
传统测试:很多测试人员只需要去点点点,这造成很多测试人员工作枯燥,无聊,使地这个测试行业给很多人的感觉就是,不需要能力都可以做测试工程师,小学生都会去点点点,降低了测试行业的重要性,使得测试工程师的价值一直被技术界贬低,所以,我们必须用其他方法去提升自身价值
自动化测试:我们需要编码,而且编码能力不能比开发差,所以我们需要去学习开发的知识内容,了解开发的知识框架,了解我们公司开发的总框架,这样我们可以跟开发更接近了一步,减少我们测试与开发之间的矛盾,也促进测试和开发的友好关系了。
3.未来的路更清晰:
传统测试:当我们只是一直点点点,即使我们测试用例写得再好,我们也只会点点点,我们没有其他更突出的能力了,当我们点了几年之后,我们会担心自己未来的方向该往哪走,继续点点点,还是不点了。我们担心,年轻的一代点点点比我们快,导致我们失业,所以我们现在必须作出改变
自动化测试:这是促进测试和开发行业的桥梁,当我们对测试知识理解到深层次,也理解到开发使用的框架,那么我们可以转什么职位呢?项目经理,产品经理,测试主管,项目主管这些都是我们可以在未来选择的职位的。在当前开发和产品不断有矛盾的时代,我们必须去改变这个行业中存在的矛盾,即使未来改变不了,至少我们也要为技术圈作出贡献。
VantPy自动化测试框架的更多相关文章
- 避免重复造轮子的UI自动化测试框架开发
一懒起来就好久没更新文章了,其实懒也还是因为忙,今年上半年的加班赶上了去年一年的加班,加班不息啊,好了吐槽完就写写一直打算继续的自动化开发 目前各种UI测试框架层出不穷,但是万变不离其宗,驱动PC浏览 ...
- [转]Android Studio 里搭建自动化测试框架Robotium
Android的自动化测试框架可选择的不多,后来选了Robotium(https://code.google.com/p/robotium/),它的语法及易用性挺像我们用在iOS里的KIF. 官方文档 ...
- 基于Ruby的Watir-WebDriver自动化测试框架
基于Ruby的watir-webdriver自动化测试方案与实施(五) 基于Ruby的watir-webdriver自动化测试方案与实施(四) 基于Ruby的watir-webdriver自动 ...
- Windows下部署Appium教程(Android App自动化测试框架搭建)
摘要: 1,appium是开源的移动端自动化测试框架: 2,appium可以测试原生的.混合的.以及移动端的web项目: 3,appium可以测试ios.android.firefox os: 4,a ...
- IntelliJ IDEA 自动化工具安装并添加自动化测试框架
IntelliJ IDEA是一个用于开发人员开发和测试人员自动化测试的测试工具,类似于eclipse. 优点:插件多自身可以携带,自身携带cucumber自动化测试框架,类似于junit一样 缺点:r ...
- Selenium自动化测试框架介绍
Selenium自动化测试框架介绍 1.测试架构作用 a.可维护性 b.提高编写脚本效率 c.提高脚本的可读性 2.框架的几大要素: Driver管理,脚本,数据,元素对象,LOG,报告,运行机制,失 ...
- UiAutomator自动化测试框架介绍
UiAutomator自动化测试框架介绍 环境搭建 1 必要条件 1.1 JDK 1.2 SDK(API高于15) 1.3 Eclipse 2 ...
- UI自动化测试框架(项目实战)python、Selenium(日志、邮件、pageobject)
其实百度UI自动化测试框架,会出来很多相关的信息,不过就没有找到纯项目的,无法拿来使用的:所以我最近就写了一个简单,不过可以拿来在真正项目中可以使用的测试框架. 项目的地址:https://githu ...
- Robotium自动化测试框架实用教程(图)
一.简介 Robotium是一款国外的Android自动化测试框架,主要针对Android平台的应用进行黑盒自动化测试,它提供了模拟各种手势操作(点击.长按.滑动等).查找和断言机制的API,能够对各 ...
随机推荐
- hadoop2集群中关键配置文件的记录
配置HDFS 高可用 1.配置HDFS配置文件 $ vi hdfs-site.xml #写入 <configuration> #配置NameService 名字随便起 <prope ...
- Leetcode题解(十一)
31.Next Permutation 题目 这道题目的意思是给定一个序列,找出其按照字典顺序的下一个顺序,如果给定顺序是字典中的最后一个顺序,其下一个顺序则为字典中的第一个顺序.比如: 1,2,3, ...
- JavaScript Function.call() 函数详解
语法 functionObject.call( [ thisObj [, arg1 [, arg2 [, args...]]]] ) call()函数用于调用当前函数functionObject,并可 ...
- Rem与Px的转换[转载]
原文:http://www.w3cplus.com/preprocessor/sass-px-to-rem-with-mixin-and-function.html rem是CSS3中新增加的一个单位 ...
- javaSE基础
变量 1.变量就是数据存储空间的表示. 2.标识符命名规则:变量名=首字母+其余部分 ①首字母:字母.下划线.“$”符号(开头) ②其余部分:数字.字母.下划线“$” ③应避开关键字:int int ...
- JavaScript系列-----Object之toString()和valueOf()方法 (2)
深入理解toString()和valueOf()函数 1.我们为什么要了解这两种方法 众所周知,toString()函数和valueOf函数,这两个函数是Object类的对象生来就拥有的,而且他们还可 ...
- C#继承中的override(重写)与new(覆盖)用法
刚接触C#编程,我也是被override与new搞得晕头转向.于是花了点时间翻资料,看博客,终于算小有领悟,把学习笔记记录于此. 首先声明一个父类Animal类,与继承Animal的两个子类Dog类与 ...
- JDBC之代码优化
上一次我们是先实现了JDBC对数据库的增删查改操作,然后在增加新信息过程中发现了新的问题,即当某一操作失败,为了维护数据库的一致性,我们需要回滚事务.在其中我们了解了事务的工作原理及相关代码的使用. ...
- CSS样式命名整理(非原创)
非原创,具体出自哪里忘了,如果侵害您的利益,请联系我. CSS样式命名整理 页面结构 容器: container/wrap 整体宽度:wrapper 页头:header 内容:content 页面主体 ...
- python 读取本地文件批量插入mysql
Uin_phone.txt 本地文件内容 有1000条,这里只是展示前几条,供参考 133584752 133584759 133584764 133584773 133584775 13358477 ...