一个完好的主动化测验渠道应该包括什么

发布时间:2022-01-25 | 作者:kok电竞登录  浏览量:54

  说到主动化测验,很常见的误解便是把主动化测验等同于某种主动化测验东西,例如最广为人知的Selenium,但这仅仅狭义上的了解。在实在的项目实践中,主动化测验包括的内容许多,不仅仅仅仅某种主动化测验东西,我了解的一个老练的主动化测验渠道,应该包括以下这些方面:

  对被测体系进行操作的主动化结构或许东西:例如web程序的Selenium, 移动端程序的Appium,windows运用程序的white,autoit,QTP等。请留意,它们仅仅主动化结构,供给了能够主动化操作被测体系的功用,不是测验结构,由于它们不具有测验结构根本的用例安排,成果校验等功用,所以在实践根本上都是需求和一个测验结构集成起来运用的。

  测验结构:与主动化结构集成,供给用例收拾,分类,调度,成果校验,陈述输出等功用,例如Java的Junit, TestNG, Python的Pytest, Ruby的Rspec, 以及能够习惯各种言语的Cucumber等。

  测验环境构建:运用Vmware,AWS等虚拟化和云技能构建和办理操作体系等级的服务器,运用docker等容器化技能构建和办理运用等级的服务。当需求多个容器时能够运用docker compose,docker swarm等,再杂乱时能够运用kubernetes来办理和保护整个环境。抱负状态下测验环境应该是主动化的一键式布置,有完好的布置脚本且归入版别办理体系控制。可追溯,可回滚,能够很便利的从零开始构建,能够方便的在本地构建起一个测验环境,测验人员有自己的专属测验环境,关于环境有控制权,一起具有保护环境的才干,能够依照需求随时构建或许毁掉。

  测验数据预备:主动化测验需求完好的,可控的测验数据作为支撑,不然主动化测验便是铺排,无法预判的履行成果反而会成为团队的担负。首要的妨碍其实在于人员才干和权限办理,需求测验人员关于事务和体系有深化的了解,才干精确的预备所需求的数据(例如事务中的操作和数据对应哪些API的哪些字段,又对应数据库中的哪些表)。数据的预备从底向上能够分为直接构建数据库(一般比较难完结,需求对数据库具有权限,且了解表结构,但却是最高效的办法),调用API创立数据(需求了解被测体系API音讯体的结构,并且有权限),经过UI主动化脚本创立(可见性最好,可是最低效,最不安稳),在履行完主动化测验后也需求有相应的办法来整理数据。还有一种办法是经过mock server,这样既能处理依靠体系的问题,也能完结依靠数据的预备,可是开发mock server需求必定的工作量,且需求对体系和事务十分了解,并且运用mock server会导致测验的不实在性,无法发现实在体系集成之间的问题。Java的spring boot,wiremock,python的flask,Ruby的sinatra等都能够用来做mock server。

  并发履行:并发履行是进步测验履行速度的有用办法,有不同的办法能够完结并发履行,比方运用构建东西的并行测验功用,例如maven的surefire和failsafe,gradle的多线程履行功用,cucumber-jvm的并发履行。也能够运用其他东西或许库来完结,例如ruby的parallel-test,再杂乱一些的,能够写个专门的程序或许服务来将测验的分发到不同的docker容器上履行,在BAT等顶尖互联网公司的测验同享中有过这样的事例。并发履行的另一个难题是需求处理好测验用例,测验数据,测验环境的阻隔性问题,防止呈现并发时相互搅扰的状况。这就需求在规划测验用例时做好解藕,每个测验用例或许测验场景都是能够独自履行的,不存在用例间相互依靠的状况。在测验数据的预备上,要做好数据的唯一性和独立性,履行前预先预备好数据,履行后铲除无用的数据,某些场景还要考虑同享数据在多线程运转时的同步,死锁等问题,不过现在干流的编程言语例如Java, Python在处理多线程编程时都有很老练的办法。关于测验环境的预备,依据项目场景也有不同的办法,能够在多个测验环境上履行,也能够只在一个环境上履行,可是某些体系或许存在账户不能一起登陆等问题,需求提早考虑或许躲避。在这儿我想再替docker打个广告,docker容器技能的轻量化,低开支发动毁掉,容器间相互阻隔等特色,十分适宜用来快速构建测验环境和并发履行测验。

  与CI集成:主动化测验只要与CI集成才干最大的发挥作用,不然假如只能在测验人员的机器上履行,将存在成果对团队不行见,缺少标准的调度战略,无法引起团队的注重等问题,导致主动化测验形同虚设。而一个完好的CI流水线也需求包括主动化测验,在灵敏理念中有一句话,没有主动化测验的CI不能称之为CI。主动化测验与CI集成在技能上并不难完结,实质便是把测验由在本地履行放到CI的履行机上去履行,现在干流的CI东西,例如Jenkins,Bamboo,CircleCI等都能很简单的完结装备。需求留意的仍然是测验环境,这儿的测验环境包括两部分,被测体系的环境和履行主动化测验的环境。被测体系的环境需求能够被CI履行机拜访,履行主动化测验的环境一般在CI的履行机上,就需求装备CI履行机的环境了,例如Java或许Python环境,Webdriver,浏览器等等。而这又会牵扯许多细节问题,例如CI的履行机一般都是Linux环境,无法运转图形界面,需求运用浏览器的headless形式,仍然强烈推荐运用docker来封装整个的测验履行环境,这样在CI履行机上只需求docker pull, docker run就能够了,防止由于环境,依靠包等差异带来许多的问题。在我的另一篇文章中有介绍如安在docker容器中履行主动化测验。

  与用例办理体系集成:主动化测验履行后都会生成测验陈述,可是更进一步,假如能够和用例办理体系集成,主动标示履行成果,那就更省劲了,在许多项目中也是常见的做法。不同公司和项目运用的用例办理体系千差万别,有些仍是内部开发的体系,需求依据实际状况剖析处理。但一般都需求用例办理体系能够供给标示履行成果的API,在测验履行后有专门的程序来收集收拾测验陈述,再调用用例办理体系的API来标示成果。以业界名望最大的JIRA举例,就供给了API能够查询和标示test case的履行成果,所以只需求将履行成果依照API规则音讯格局收拾好,调用即可,并不难完结。

  以上介绍了一个通用的主动化测验渠道需求包括哪些功用,以及这些功用怎么完结。假如是移动端的测验渠道,则还有更多的问题,例如不同设备的兼容性,怎么并发和调度多台不同设备,在BAT这些顶尖互联网公司有老练的实践,而我自己这方面的经历并不多,仍然处在学习探究的阶段。从实质上看,构建一个比较完善的主动化测验渠道,需求对被测体系有深化的了解,有厚实的软件测验和编程根底,了解至少一门编程言语,了解CI和Devops,有比较广的知识面和技能栈,知道怎么选用适宜的东西和结构来处理问题。

上一篇:工业自动化等工业品展会 下一篇:下一代主动化测验体系的必备技能
分享到:
快捷导航: kok电竞登录 kok电竞官网 新闻中心 产品中心 案例中心 kok电竞馆

Copyright © 2016 kok电竞登录官网_kok电竞馆 ALL RIGHTS RESERVEDkok电竞馆
电话:0731-85133451/22201682地址:湖南长沙雨花区长沙国际研创中心A3栋