• 自动化框架思路


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

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

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

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

  • 相关阅读:
    安装redis报错 you need tcl 8.5 or newer in order to run redis test
    wm_concat函数oracle 11g返回clob
    ArrayList去重
    虚拟机linux下安装tomcat外部可访问
    虚拟机下Linux安装jdk
    本地硬盘和虚拟机之间复制文件
    VMware中为Linux安装vm-tools
    windows操作系统下载tomcat,并与eclipse进行整合
    Windows配置java运行环境的步骤
    Mac配置java运行环境的步骤
  • 原文地址:https://www.cnblogs.com/test_home_c/p/9399244.html
Copyright © 2020-2023  润新知