属于你自己的自动化框架思路

前言

说起自动化,最先想到的应该就是一些编码技术了。

比如至少会一种语言:java、python、js、c++、vb、等等;

用来设计测试用例和脚本框架,比如至少熟悉一种框架或工具:spring、Django、Selenium、UTF、RobotFramework、JMeter、LR、Appium、Macaca、TestNG、UniTest等等;

用来支持元素抓取,或者写个高大上的页面支持你的框架,可能还需要一些前端的知识:h5、css等等;

当然,也需要一些辅助的东西,比如:jdbc、log4j、poi、report、xshell、cmder之类的,让他们帮助你做数据库关联、日志分析、服务器监控、测试报告输出等;

然后安装一堆软件,搭建各种复杂的环境……

从前端到后台开发,再到报告分析,还有业务梳理,又要服务器运维,测试人员这么牛逼?是的,要会很多东西,虽然不是很精,但却要什么都懂。

然而这么一大堆的东西,我们要怎么去学习和入手呢?那么,就开始正文——思路!

正文

创造属于自己的学习思路,这个思路也会帮助你完成自动化,不仅是功能自动化,还有性能的。

我在这里一步一步的说吧,先说说

语言

不要纠结我到底学什么语言好,是Java还是Python,又或者是vb。也许你可以根据市场情况做选择,比如市场占有率最高的Java、比如当下热门的Python,又或者是为了使用LR或UFT而学习vb。

作为选择,给你几种建议:

第一,如果你已经有了一种语言的基础,比如java,那就不要跟风去研究python,如果你把java玩的很溜,那看python的东西绝壁不会很难,精通一种先;

第二,就职的公司语言普遍使用情况,比如公司里的程序员们都在敲python,你非要用vb跟他们抗衡一下?那也是要求前提你能看懂python;

第三,如果你没有入职呢,又不会语言,java和python任选,不用纠结,哪个学会了,另一个都能看懂,这就足够了!扔骰子决定都可以~

框架/工具

会了语言,我们才需要考虑做什么自动化,功能还是性能。

功能和性能择一而从,不要纠结,需要哪个就专心学哪个。精通一个就好,另外的做了解或者稍微熟悉一点就可以。

以自动化为例,做自动化,要么自己开发脚本、框架、工具,要么选择现成的工具来使用。

选择?没那个必要,只看当下热门和公司要求的!

1.以Webdriver为首的自动化框架和工具:selenium针对WebUI、appium针对MobileUI。

后边这个是阿里的开源框架macaca,可以同时应用于Web和Mobile~

2.以培训或学习过的工具为基础,继续学习:UFT,惠普三剑客的软件都是基于vb的,继续去精通学习它吧,会这个的钱也少不了。

利用你学会的语言,去拼命研究这两个框架吧,搭建好环境,至少写出第一个脚本,比如去百度搜索个东西这样的简单用例。

就像你先学会了print HelloWorld,才开始研究print 1+1的问题一样,从简单的开始,由浅入深的去思考你要做的事情。

如果你会了上述的框架,可以写出简单的脚本来了,那么就算公司要求你会RobotFramework也没问题,它也是webdriver为基础的工具,而且是python编译的,没有难点。

当你觉得现成的工具总是不能如意的时候,你就该考虑自己写工具或者改造别人的开源工具了!

思路

工具即思想!你需要哪种功能,就会创造哪种工具。你想要一个对象,你就去new一个……,你想要把工具里的数据统一管理,你就要考虑怎么关联数据库,或者找其他的存储的地方,等等。

1.构建框架

现在脑中构想你的框架或工具的功能,然后把它画出来,也许是一个很牛逼的东西,也许你现在只是想想,没关系,先做个图,以后慢慢完成,这就是你的目标。

比如:我想要一个页面或者客户端类的自动化工具,我只需要把要测试的网址或者客户端扔进去,他就能帮我完成所有的跳转类测试;

比如:我只需要把需求输入进去,他就能帮我搞定这个需求所有需要覆盖的用例脚本!

就是这种听起来很厉害的东西,我们完全可以一步一步去完成。

2.搭建测试环境以及初始化脚本

搭建起你想要的测试环境,比如idea+selenium+java+maven;

然后运行你的第一个脚本,比如登录到公司运营的项目的首页;

封装你的第一个脚本,然后再次运行它,比如把它放到别的类里,你的main方法里只需要一个login();他就完成了你需要的功能;

3.数据驱动或其他驱动

将你抓取到的element元素都单独放置到一处来调用,比如一个类中,或者excel里,或者数据库里;

将你登录的账号或者其他输入文本都存在一处来使用,比如一个类中,或者excel里,或者数据库里;

4.加入断言

测试用例是需要预期结果的,那么断言就是用来做这个的。

登录成功后,assert断言你登录成功后页面的标题,比如assert(实际结果,预期结果),如果判断相等就print一个oye!不相等就用例执行失败print一个ono!

5.多用例执行

用例肯定是有很多的,比如注册、登录、搜索,甚至是个按钮点击的链接跳转;

用什么来维护多用例呢?你不会全写在main里边吧,之前已经学会了封装,那在执行的时候,不妨考虑一下testNG(java)、线程、unitest(python)、Junit。

他们可以很好的帮你管理多用例的情况,你可以管理在类里,也可以管理到csv或excel表格里,又或者放到xml里进行,更可以通过多线程来一起执行。

6.测试报告

用例也写好了,总要一个漂亮的报告吧,让我们清晰的看到这一堆用例的执行情况,

包括执行结果、执行的什么用例、如果报错,有什么错、错误截图、等等;

那我们可以考虑自己在类里做个简单的页面来整合这些结果、也可以放到excel中去保存结果、更可以通过学习前端知识,自己写一个页面,把结果都关联进去,更加高大上!

7.优化

完成了以上的这些,我们继续考虑如何优化我们的小框架,丰富起来,让他变的“万能”;

因为这个时候你的思路应该已经拓展起来了,剩下的都是烦恼,只需要把烦恼转换成实现就可以了。

比如:svn、github的代码管理,自建一个bug管理工具,搞一个持续集成~

8.其他

其他自己想去,思路是自己的,随便你怎么去想,自己去完成就好!

千万不要对学习纠结,有纠结的时间,你随便学一个,学会了就很厉害!

时间: 2024-10-29 10:46:21

属于你自己的自动化框架思路的相关文章

Web自动化框架搭建——前言

1.web测试功能特性 a.功能逻辑测试(功能测试),这一块所有系统都是一致的,比如数据的添加.删除.修改:功能测试案例设计感兴趣和有时间的话可以另外专题探讨: b.浏览器兼容性测试,更重要的是体验这块,想提供建设性建议,是建立在业务场景.用户使用的深刻理解基础上,然后对产品目规划理解是否合理,提出自己的看法与想法:体验这块,一定要有一个比较全局的概念,换个意思说,就是应该站在产品经理的角度去看系统,看系统的各个子功能.各个子功能协调是否合理.是否还有更优建议.而不仅仅只局限一个界面.一个菜单.

CYQ.Data 从入门到放弃ORM系列:开篇:自动化框架编程思维

前言: 随着CYQ.Data 开始回归免费使用之后,发现用户的情绪越来越激动,为了保持这持续的激动性,让我有了开源的念头. 同时,由于框架经过这5-6年来的不断演进,以前发的早期教程已经太落后了,包括使用方式,及相关介绍,都容易引人误解. 为此,我打算重新写个系列来介绍最新的版本,让大伙从传统的ORM编程过渡到自动化框架型思维编程(自已造的词). 于是:这个新系列的名称就叫:CYQ.Data 从入门到放弃ORM系列 什么是:CYQ.Data 1:它是一个ORM框架. 2:它是一个数据层组件. 3

基于Selenium的web自动化框架

1 什么是selenium Selenium 是一个基于浏览器的自动化工具,它提供了一种跨平台.跨浏览器的端到端的web自动化解决方案.Selenium主要包括三部分:Selenium IDE.Selenium WebDriver 和Selenium Grid: Selenium IDE:Firefox的一个扩展,它可以进行录制回放,并可以把录制的操作以多种语言(例如java,python等)的形式导出成测试用例. Selenium WebDriver:提供Web自动化所需的API,主要用作浏览

工作流和过程自动化框架 Camunda BPM

Camunda BPM 是一个灵活的工作流和过程自动化框架,它的核心是一个在Java虚拟机内部运行的原生BPMN 2.0流程引擎,因此它可以嵌入到任何Java应用程序或运行时容器中.Camunda BPM与Java EE 6集成,并可以与Spring Framework完美匹配. Camunda BPM平台还提供了一套丰富的.围绕BPM生命周期的组件: 流程实现和执行组件:camunda engine(负责执行BPMN 2.0流程).REST API.Spring/CDI集成 流程设计组件:ca

ShutIt:一个基于 Python 的 shell 自动化框架

ShutIt是一个易于使用的基于shell的自动化框架.它对基于python的expect库(pexpect)进行了包装.你可以把它看作是"没有痛点的expect".它可以通过pip进行安装. Hello World 让我们从最简单的例子开始吧.创建一个名为example.py的文件: import shutit session = shutit.create_session('bash') session.send('echo Hello World', echo=True) 运行这

接口自动化框架好文

接口自动化框架好文 2017-04-13 API 自动化测试框架分享 接口测试的一些感悟 HTTP API自动化测试从手工到平台的演变

致网友Wonderfei的一封信(如何选择自动化框架的几点拙见)

注:本来这封信要发给Wonerfei网友的,但是因为每次只能发200字,所以干脆贴到博客上,叫Wonderfei同学到这上面来看,也算是我自己的一个临时总结吧.同时也希望大家给予Wonderfei相应的帮助,毕竟我自己的观点不一定正确和完整. Hi Wonderfei, 你好,由于我是博客新手,所以没有留意到你给我发的私信,不好意思. 首先由于我自己也是个新手,也是在学习各种框架然后给公司项目选定相应自动化框架,研究移动自动化测试框架也就近段时间而已,所以我只能从我自己今天为止的认知角度给各个框

Appnium移动自动化框架初探

作者:cryanimal QQ:164166060 本文简要介绍了appnium自动化框架的架构.加载流程.支持语言.相关配置,以及元素定位工具等. 官方网站: http://appium.io Appnium是由SauceLabs支持,一家业界领先的测试产品公司, 有成熟的企业测试解决方案   Appium支持的平台 Android上使用了instrumentation和uiautomator两套技术 iOS使用uiautomation 同时还支持firefox, 并可扩展其他平台   App

运维自动化平台思路

⑴客户端初始化: info collect  信息收集  CMDB 配置管理工具 ⑵服务端 ①资产管理simplecmdb ②配置管理(软件安装.配置同步) puppet.saltstack.ansible ③代码发布(自动化部署) jenkins.svn.python xml RPC ④监控报警  nagios(关乎状态) graphite(关乎性能和趋势) ⑤日志搜集  kibana logstash  elasticasearch 运维自动化平台思路