上云测试,这些症结点你get 到没有

2019年7月2日11:06:10上云测试,这些症结点你get 到没有已关闭评论 482

 导读,先从云化提及,再谈谈云化形状下,除通例的功用测试,云化的测试,还须要有几个必须要get到的硬核目标,末了在离别详解这些症结点硬核目标是甚么,和怎样测试呢。这是个值得沉思的题目,愿望一切测试人都get 到这些,且比贴子说提到的做得更多,提炼出更多 check point。

     先回忆一下云化的掘起之局势

     当下oracle裁掉全部中国研发中间,正闹得沸沸扬扬,一症结缘由是,oracle受云盘算等新兴手艺打击,本身营业生长乏力以至下滑,以是更存眷本钱掌握,从而举行战略性人事调解,为云盘算腾出更多资本;本日,阿里云已逾越微软Azure,成为仅次于亚马逊AWS的天下第二大云盘算公司,10年前在百度和腾讯都不看好的状况下,马云以为云盘算是将来,每一年投入1亿,不晓得猴年马月咸鱼翻身的状况下,马云就这样投了王坚的阿里云10年,末了真的把马化腾说要1000年才做成的事给办了!然则事先全中国没有一家公司情愿投入云盘算这类“虚无缥缈”的奇迹中,最困难的时刻,80%的工程师因种种缘由离开了阿里云,十年前的王坚博士,在许多人眼中就是一个彻彻底底的“骗子”。

      初期云厂商,重要供应的云资本偏重于iaas 层,以后跟着云盘算的深入生长,从iaas,到paas ,serverleess  加容器手艺,已经成为云厂商标配产物,云化是一个弗成逆转的趋向,已被群众所接收,固然受一些非手艺要素的限定或是一些汗青累赘的限定,混和云,多云和公有云一道将长期存在。越来越多的公司把效劳放在云端,小公司能够只是仅仅把效劳搬到云端(也就是把先前的本布置,搬到云端),现实上这是不真正的云盘算,固然容灾备份能力有质的提拔,saas 厂商,或是大厂商,会在云厂商的pass 平台上,构建一个胶水层, 整合PAAS和SAAS构成本身的云管理平台,通明完成弹性盘算,横向扩大和可视化运维监控等非功用性的管理需求。

 

       云化测试这些非功用性必测的硬核症结点必需get 到 

       这些非功用性硬核症结点和云盘算的特征有着肯定的干系,同时也和效劳的可靠性,效劳的计量和管理有着亲昵的干系。简朴来讲你要包管你的云效劳的可靠性,可用性,可管理性,必需具有一些云化后的非功用性目标,由于你营业功用再好用,弗成靠,对用户来讲是没有保证的,以下8个硬核点就是云化的非功用目标,后续一节再离别报告,这些硬核点的的界说以及怎样来测试这些点,特别是第1,第2,第3,这三个缺一弗成,不然你的软件只是搬到云端,其实不具有任何云盘算的特征,也就是假云。

     第1弹性,也叫自动伸缩;

     第2,效劳无状况;

     第3 ,多租户支持;

     第4,毛病转移/断绝;

     第5 ,效劳限流珍爱;

     第6 ,运用平安;

     第7 ,挪用链追踪,

     第8 ,可视化效劳管理(可观察,可自动康健搜检,效劳文雅封闭等)

 

用一个示例来讲明8个硬核点以及测试要领或手腕

     下图是一个在aws,建一个VPC  且经由过程VPN和当地效劳构成一个夹杂云的收集架构图,

     建立4个子网,离别用于布置:租户注册 Web顺序、数据库、进销存 Web顺序、进销存 App顺序;,为了完成高可用性,每种范例的子网依照可用区各建立a、b两个。

     租户注册胜利后,挪用CloudFormation接口,自动布置的云进销存营业体系。(现实是物理断绝)

 

    再回到前述8个硬核目标

 

    第1弹性,也叫自动伸缩

           提及弹性,先从常说的云效劳器,ecs 提及,它就是Elastic Compute Service的缩写 ,是一种处置惩罚能力可弹性伸缩的盘算效劳器,这是从IAAS (更偏硬件资本:CPU,内存,磁盘,收集)层来完成弹性,这处理了硬件或是底层资本的弹性;现实从供应云效劳的软件层现来看,还要有软件本身的弹性也就是saas或是paas层的弹性,比方,须要依据时候或是其他的战略(基于流量,或是硬件资本的特定基线)横向扩大,如高峰期,登记效劳须要10个节点能力包管支持高峰期的并发量,非高峰期,再削减登记效劳节点,腾出盘算资本做其他事变。在云上,完成集群节点的扩大是很简朴的事,设置装备摆设好扩大战略便可。测试的时刻, 必需把弹性作为一个check point ,怎样考证,从前面其界说就能够邃晓,这里就不再反复了。如今题目来了,动态扩的效劳,怎样让集群感知,且可用呢,请看以下第2项

     第2,效劳无状况;

       接上一个题目,动态扩的效劳,怎样让集群感知,且可用呢?让集群感知有两个设施,一是效劳在横扩的时刻,向ELB(负载平衡)动态注册(若是扩大了节点,须要手动设置装备摆设并重启负载匀称相干组件,这不叫弹性),或是经由过程效劳发明注册组件来完成,这有许多成熟的手艺,这里就不多申明,重点是,新横扩出来的效劳,加到集群后,要让他能对外供应效劳,这要求效劳是无状况的 ( 好比会话session ,或其他上下文,不依靠效劳地点属主容器,如tomcat ,jetty,weblogic ,iis等),不然某个要求被路由到新扩的效劳节点时,能够会为由于会话或上下文的题目,致使效劳在营业上弗成用。测试的时刻, 必需把效劳无状况作为一个 check point,若是效劳完成方,是经由过程在负载平衡上经由过程“ 黏住” 战略,来完成会话同享,的话,有一个大题目,当效劳节点削减,或是某些效劳节点挂掉时,之前这些效劳节的效劳的客户端后续的要求,转移到其他节点,session 就会丧失,一般做法是,把session或上文下外置在效劳线程地点容器(tomcat ,jetty,weblogic ,iis等)以外,如memcache 中,redis 中。

     怎样考证这个无效劳的搜检点呢?假定是一个Web 顺序,经由过程封闭单一节点,再重启搜检,是不是为同一个session。测试这个完全能够在非云状况来考证,用一个单单一节点来测试(非集群形式),好比先登录,进入到某页面,且预备做某个对session 有依靠的操纵,这时候,停下正要操纵的功用,先停掉这个节点,然后重启这个节点,,重启后再在之前登录的页面上,接着做这前的作操纵,并没有提醒要重登录,或是session逾期,操纵胜利,能够考证;固然也能够用两个节点来考证(集群模 式),每一个节点上,放两个相面的页面,在上面,打印出session id ,以及节点的称号,先要求这页面,记下打印的session id 及节点名,关掉恣意一个节点,再革新这页面,看看打印的session id 一样不,如一样,只是节点名变了,申明效劳是无状况的。另有其他要领,这里只是举一反三,供应一下思绪。如纯背景API ,只需检认证信息是不是逾期,或是是不是是同一个认证信息。

     

     第3 ,多租户支持;

     既然是云上的效劳,必须要求分歧的客户(租户/单元/构造)都能运用,且互不影响,完成多租户,一般有两种断绝体式格局,逻辑断绝和物理断绝;逻辑断绝指,人人其用一套体系,只是在数据库层在表中加一个字段,数据所属租户;物理断绝,这每一个租户零丁部一套体系。测试的时刻, 必需把多租户支持作为一个 check point,测试要领,经由过程对断绝的叙述,天然就晓得如考证,支不支持多租户,以及是以甚么体式格局断绝。上面示例中,租户注册胜利后,挪用CloudFormation接口,自动布置的云进销存营业体系,这现实是物理断绝。

    

      第4,毛病转移/断绝;

       云效劳,肯定会有出毛病的时刻,为了保政毛病发生的影响最小,必需有应对毛病的战略,毛病转移也分两个层面的,,一个是IAAS层的,一个是营业效劳本身的毛病转移。如全部体系宕机,或是有毛病,应用镜像,自动从新实例化一个实例,只是收集属性未变,这是IAAS层面的,在PAAS看来,现实是和之前是无差别的,相当于,传统体式格局下,疾速启用冗余或备用的效劳器、体系、或许硬件代替它们事情;另一个是软件层面,营业效劳体系,在效劳弗成用时,支持的重试逻辑,同时支持重试,就要求连结幂等性(简朴说,对同一个数据做同一个操纵,做一次和做N次,结果是一样的),或对失足的效劳举行断绝,不断绝会激发雪蹦效应,或是接纳效劳下降的错施。一句话,测试的时刻, 必需把毛病转移/断绝作为一个 check point, IAAS层的转移,只需向云厂商确认便可,基本上云厂商这层面都已完成,软件方面的毛病处置惩罚,须要依据断绝战略来实行响应的测试,细节详细依据详细运用再详查,重如果不要漏过这个测试点。

     第5 ,效劳限流珍爱;

     既然是公有云,面向的是一切你的客户,某些状况下,接见量会爆增,或是遭到歹意的接见进击,这时候效劳的可靠性,隐定性也必需获得保证,经由过程对并发接见/要求举行限定或许一个时候窗口内的要求举行限速来珍爱体系,一旦到达限定速度则能够谢绝效劳或许列队守候,从而使效劳不会引过量的接见而瓦解,这就是限流。

    测试要领,经由过程压测,或是增加到并发量,到体系支持的极限后,体系有无因接见量太大而瓦解。测试的时刻, 必需把效劳限流珍爱作为一个 check point

    

 第6 ,运用平安;

       效劳放云上,面向全部互连网,除要应对歹意的进击,还要防备效劳器被劫持,还要包管数据平安,和受权内接见等等,平安是一个很专业的一个倾向,测试的时刻, 也必需把平安作为一个 check point, 测试职员在这方面,只能做一些通例的平安测试,如SQL 注入,XSS跨站进击,敏感信息是不是明文传输, API的接见是不是要经由过程考证,一些等存级别高的营业,还须要双向认证,以至实名认证等,其他的则须要请专业的平安公司举行周全的平安测试,他们能扫描出体系存在的平安漏洞和不平安的要素,并给出好的整改发起

 

     第7 ,挪用链追踪,

         这要看效劳是不是是一个分布式运用,分布式运用中,体系存在相互挪用的状况,构成一个 挪用链,一般一个要求,会激发A组件,挪用B,组件,B组件挪用C ,C挪用D,能够另有更长的挪用链,实话说,挪用链追踪,有点倾向于运维,在测试时,分布式状况下,不借助挪用链追踪有些题目基础没法定位,好比说,某个要求失足了,现实是错挪用链的哪一个节点上,或是某个功用很慢,慢在哪,不借助于挪用链追踪,你都没设施跟顺序,就算让研发本身打断点,也要搞死人的,分布式加集群,同一个效劳,每次挪用时,挪用链都能够不一样。上云的运用,一般是分布式用,作为测试职员,也有必要把挪用链追踪作为一个 check point,能力在分布式场景下,提出定位更准,更专业的题目,而不但在BUG的表像上。开源挪用链追踪有zipkin,pinpoint,skywalking等。挪用链跟踪须要研发那里来集成,测试这边要get到这个点和会运用。下图是昨天用zipkin 的一个截屏示例

 

    第8 ,可视化效劳管理(可观察,可自动康健搜检,效劳文雅封闭等)

       效劳管理,也是偏运维的东东,他本身的界说,列位能够自行百度;在这里,我只简朴场景上来讲明,效劳管理的也许意义,你的效劳在云上,可靠性要有保证,重要在于防备,不克不及抓瞎,真正题目发生了,就炸锅了,须要经由过程可视化的体式格局,观察到效劳的状况,康健状况,流量状况,响应速度,并发量,资本运用状况等,并依据于些,接纳自动或半自动的体式格局启动弹性扩大,或是接纳断绝,熔断等步伐,以保证效劳的可用性。在devOps 大行其道的当下,测试职员向运维多靠一点不是坏事,会给测试供应更多灵感和带来更多测试手腕。云上的效劳。效劳文雅封闭,顺带提一下,要封闭某个效劳时,正在效劳中运转相干营业线程会同进被关掉,也就意味着这些营业操纵肯定要失利,与之相反效劳文雅封闭,指在封闭前,他会谢绝新的进求进来,同时要完成以后的一切营业后,才封闭,有点像银行的窗口,不接收营业了,但要把以后正解决的营业处置惩罚完。测试职员以此作为一个 check point ,可用来考证云效劳完成程度的上下,又能为效劳的可靠性测试提代相干测试手腕/要领,这个点也要get 到。

 

     总结来讲,就是测试云上运用,除营业功用本身的测试,还要测试上述提到的8个非营业功用硬核点,特别是前3点,是辨别真云,假云最症结点;云化相对是弗成你逆转的趋向,测试人的相干看法也要以时具进,能力跟上生长的须要。固然小我程度有限,认知有限,叙述后能够会存在偏颇的地方,迎接拍砖和增补。itest 测试手艺团队,一向存眷测试新手艺,新前沿,并以itest 开源管理测试软件作为理念的落地完成,itest ,是一款会聚10年履历,流程驱动测试的开源的测试管理软件,是我们测试人本身开辟测试管理软件,表现我们对测试的情怀,是最懂测试人的开源测试管理软件新秀  ;Itest 开源团队成员由来自对软件测试有情怀,热衷于开源,又热情流传分享我们测试理念的一群人构成。(流程驱动开源测试管理软件新秀官网)

 

avatar