自动化框架思路

Posted zhouyun-test

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自动化框架思路相关的知识,希望对你有一定的参考价值。

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

 

比如至少会一种语言: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.其他

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

 

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

以上是关于自动化框架思路的主要内容,如果未能解决你的问题,请参考以下文章

httpclient框架实现接口自动化的思路

接口自动化-javaTestNG框架-设计思路

搭建接口自动化测试框架的思路分析和技术点

接口自动化--概述

appium自动化测试框架——自动化启动多台设备思路梳理

从0开始搭建Web自动化测试框架