95992828九五至尊2

光大银行雁南,接口冒烟测试方法

二月 16th, 2019  |  882828九五至尊手机版

越多技术干货请戳:听云博客

工行数据中央高级老总 李雁南:接口冒烟测试方法,交行雁南

➠越来越多技术干货请戳:听云博客

当年遇见了多少个难题,与接口的功力和总体性相关,恰巧近年来集团也在组织以冒烟测试为宗旨的运动,于是乎突发奇想,寻思着能不能将接口测试与冒烟测试结合起来,发掘一些新的接口测试思路与方法。

882828九五至尊手机版,一生对接口测试关切的可比少,半数以上接口功用都以通过使用前段的效果测试案例覆盖了,并没有独立安顿针对接口安插测试案例,因而真的到了履行时,作者才察觉对于接口测试还贫乏1个确切的定义。求助度娘,百度了然上的概念如下:接口测试是测试系统组件直接口的一种测试。接口测试紧要用于检测外部系统与系统里头以及其中各类子系统里头的交互点。测试的重大是要检查数据的交换,传递和决定管理进度,以及系统间的互相逻辑正视关系等。那几个概念与大家以前的敞亮并不曾太大距离,简单的说,开放平台应用通过接口服务完成应用间音信和数据交流,因而大家的测试主要就聚焦在消息和互换八个难题上了。

设计思路:

换到那个标题会简单一些,终归应用常用的接口服务类型首要就是HTTP和SOCKET三种,而针对那两体系型服务的测试方法也很多,百度时而会有很多相关测试方法和框架。对于我们那些不懂编程的小白,python自然是首选。python提供了最基本的request和httplib2库已毕报文的出殡和采纳,当然对于HTTP类型接口还会分别为post和get,这一个在request库中也都有相应的章程,大家因而一张接口登记表来记录每三个接口的项目、地址和方式,这个消息都可以从布置管理体系中赢得。

音信可以简简单单的就是接口测试案例,比置换难点错综复杂很多,须求考虑很多成分,我们统计为以下两个非常紧要难点:

一 、新闻拿到的门路有哪些;

② 、音讯是还是不是可以覆盖全数的先后分支;

③ 、怎么着判断重返结果的没错;

肆 、测试效用难题。

下边小编将逐一介绍大家的消除方案:

① 、音讯得到的门道难题:

历史观的接口测试方法主要行使手工编制接口报文的法子,那种艺术只要依照接口文档的讲述构造测试报文就OK了,即便简易,可是有失高效。于是那一个主意有了提高版本,就是经过参数化报文中的关键字段,批量变迁测试案例,那也是接口质量测试的最首要方法之一。那些方法尽管缓解了拿到报文的功用难题,但是并不可以很好解决覆盖率的题材,终归报文是人造构造出来的,并不能够极度诚实的反映实在的事体交易场景,实际测试结果也作证了这一视角。于是,大家想既然古板的接口测试是在常规的作业交易测试中覆盖了,那么大家几乎去直接破获前段发起交易爆发的接口新闻报文。非常幸运,公司绝一大半的支付机构都以严酷根据LOG4J格式记录应用交易日志的,由此大家假如依据一定的规则去分析应用的贸易日志,就可见领到出大家所要求的内容。

② 、音讯是还是不是可以覆盖全部的程序分支难点:

据悉音信内容的两样,应用程序会挑选差其他程序逻辑分支,怎样可以覆盖全体的分层,古板情势唯有通过白盒测试完结,但是验收测试更偏重于黑盒或灰盒测试,由此过去隔三差五因为测试案例不周密,导致某三个未覆盖分支的程序难点流入生产环境。大家近来想到的不二法门,是透过在系统中导入存量的接口测试案例,并由此日记中捕获的测试案例,经过一段时间的累积,逐步形成二个比较完整的接口测试案例库。若是可以旁路一台生产环境应用服务器日志,效果会更好,终究生产的贸易项目和风貌是最周详的,当然那里还要化解生产数据脱敏等难题,对于金融行业还要面对诸多制度流程的标题。

③ 、怎么着判断音信再次回到结果的科学难点:

每二个使用对于接口报文的布置性都以坚守一定的正儿八经和习惯,大家只须要梳理出标记交易得逞景色的字段就能够了。某些交易不包蕴这么些字段,大家就需求举办人工判断,并对成功的结果开展格式化(比如timestamp,流水号等),提取MD5特征值,作为判断接口后续测试结果正确的基于。不过,状态字段是马到功成并不意味着接口测试通过,毕竟重临结果中还包蕴了无数政工数据字段须要证实。如若这几个字段值变化相比较规律(比如一向不变、持续扩展或减弱),大家准备定义一些模子规则去看清它们。而那个上蹿下跳的数额,那就留下人去看清了。其实,对于冒烟测试而言,我们认为并不必要苛求去看清每一笔交易的没错,只须求计算大量测试案例结果的成功率,并与中期成功率举行相比,以判断测试结果是不是正规。

四 、执行效能的难点

我们知道的冒烟测试是要在尽或许短的时日内,对新的版本或测试环境进行3个准入测试,以咬定其是或不是有所开展继续是验收及适应性测试的尺码,因而冒烟测试的频率非常首要。大家的政策是经过异步小批量作业的艺术不间断的扫描日志处理报文,天天定时并发的形式去实践测试案例,执行时间取决于版本安装时间或测试义务的内需,目前2万笔测试案例,基本可以决定在10秒钟之内。

落成方案:

一往直前架构格外简单,就是一套开源的ELK日志采集架构,加上python开发的接口测试框架和结果统计功能,如下图所示:

882828九五至尊手机版 1

首要步骤如下:

1,通过开源ELK完毕利用日志的收集与管理。在客户端安排logstash
agent,并配置日志采集策略;日志记录以key-value的格式上送REDIS内存数据库,这几个规划重点是为了在client和server之间做二个缓冲,保险了日志记录的0丢失;ELSTICSEA福睿斯CH提供了日记的全文检索成效,并提供了API服务用来外部调用

2,利用python的pyes库调用ELSATICSEAMuranoCH的API服务,依照特征字段抓取xml和json格式的接口报文。

3,对征集到的接口报文举行格式化处理,格式化日期、流水号或时间戳等字段,并对格式化后的报文做MD5的校验。

4,利用python的http和socket接口库完毕接口测试案例,那里只怕要依据分化接纳做一些客户化,尽量通过通用的主意贯彻。

5,对于尤其的测试案例举办机动退出。为了确保案例集的可用性,大家那里做了3个简单的接口退出规则,借使推行领先两遍且每便都战败的接口案例,会被系统活动定义为失效案例。

6,对案例的推行结果开展成功率分析和谬误归因分析,最终发现存在的接口难题。那里不再关切每2个测试案例再次来到的功成名就和挫折,而是针对每一类接口的成功率、战败率和不当类型举行统计,从数值和数码变化的角度去发现标题。

7,接口定义平台提供了3个web的接口定义模块,协助工作测试人士依据接口文档编辑接口要素,并拼装成接口报文进行测试。对于复杂的交易场景(比如流程长或相互次数多),可以在阳台上编制接口的调用顺序和左右项逻辑关系,完毕一个相比复杂场景的接口测试。就算这几个功能更偏重于自动化测试,不过这么些效果扶助大家兑现了不大概通过动用前段成效测试覆盖的接口测试,是卓殊好的补偿。

因而上述情势,大家在十13日的小时里,在2个使用举办了试验,发现了30七个接口,接近2万笔报文案例,案例的管事可以已毕了97%。通过每一天对这几个案例进行自动化测试,发现了一部分接口作用和应用环境配置的题材。

上述那种测试方法还只是从技术的角度测试,为了知足实际业务测试的要求,我们也已毕部分粗略的功能:比如大家提供了多维度的测试结果统计;提供基于业务根本字的报文案例和测试结果的检索效率,以便工作测试人士火速的找到本身的测试案例;允许工作测试人士手工修改报文案例库,那样就足以跳过使用前端,间接针对接口开展测试;最终大家对每四回实施时间都开展记录,形成了报文案例响应时间的基线,用于后续的接口品质评估。

总括和题材:

以上措施是三个格外简单的接口冒烟测试方法,前提是职能测试覆盖过接口案例,并且接口报文子禽记录在日记中。随着案例和履行结果的不止累积,接口测试覆盖会进一步丰裕,统计结果会更为可相信。如若可以从生产条件日志中拿走案例,那么测试效果会更好。上述办法还有好多不成熟的地点,比如对于测试结果的采纳上、在挫折报文的归类和归因分析上,还应该会有更好的艺术。即使周详推广实施,测试的频率,特别是测试报文提取和剖析的效能还索要更进一步提高。

迎接大家拍砖。

 

原稿链接:http://blog.tingyun.com/web/article/detail/1340

http://www.bkjia.com/Pythonjc/1172842.htmlwww.bkjia.comtruehttp://www.bkjia.com/Pythonjc/1172842.htmlTechArticle工行数据中心高级经理
李雁南:接口冒烟测试方法,中国银行雁南 ➠ 越来越多技术干货请戳:听云博客
今年蒙受了几个难题,与接口的职能和天性…

当年碰到了多少个难题,与接口的效用和品质相关,恰巧近年来商家也在协会以冒烟测试为宗旨的移动,于是乎突发奇想,寻思着能照旧不能将接口测试与冒烟测试结合起来,发掘一些新的接口测试思路与艺术。

寻常对接口测试关切的相比少,半数以上接口功能都以由此采纳前段的效益测试案例覆盖了,并没有单独安顿针对接口安顿测试案例,由此真的到了实践时,小编才意识对于接口测试还缺乏3个规范的概念。求助度娘,百度精晓上的定义如下:接口测试是测试系统组件直接口的一种测试。接口测试首要用来检测外部系统与系统里面以及中间各类子系统之间的交互点。测试的严重性是要检查数据的置换,传递和操纵管理进程,以及系统间的相互逻辑着重关系等。这些定义与大家前面的知晓并从未太大分歧,简单来说,开放平台应用通过接口服务落成利用间新闻和数据交流,因而大家的测试首要就聚焦在消息和置换七个难题上了。

安插思路:

换到这么些题材会简单一些,毕竟应用常用的接口服务类型紧要就是HTTP和SOCKET二种,而针对那两种类型服务的测试方法也很多,百度时而会有不胜枚举相关测试方法和框架。对于我们那么些不懂编程的小白,python自然是首选。python提供了最焦点的request和httplib2库已毕报文的发送和接受,当然对于HTTP类型接口还会分别为post和get,这一个在request库中也都有对应的法子,我们由此一张接口登记表来记录每三个接口的花色、地址和方式,那么些音信都足以从陈设管理连串中拿走。

音信可以总结的就是接口测试案例,比置换难题错综复杂很多,必要考虑很多成分,我们总括为以下两个关键难点:

一 、音讯得到的不二法门有怎么着;

② 、音讯是还是不是可以覆盖全数的主次分支;

三 、怎么着判断再次来到结果的正确性;

肆 、测试效用难点。

上边小编将相继介绍我们的缓解方案:

一 、信息拿到的不二法门难题:

古板的接口测试方法主要采纳手工编制接口报文的点子,那种艺术只要根据接口文档的叙说构造测试报文就OK了,即便简易,但是有失高效。于是这么些方法有了晋升版本,就是经过参数化报文中的关键字段,批量生成测试案例,那也是接口质量测试的最首要措施之一。这几个主意固然缓解了获得报文的功效难点,不过并不可以很好消除覆盖率的标题,终究报文是人为构造出来的,并不能十一分真实的浮现实在的事体交易场景,实际测试结果也作证了这一意见。于是,大家想既然传统的接口测试是在例行的业务交易测试中覆盖了,那么大家简直去直接破获前段发起交易爆发的接口新闻报文。非凡幸运,集团绝超过一半的开发机构都以严俊按照LOG4J格式记录应用交易日志的,因而大家只要坚守一定的规则去分析利用的交易日志,就可见领到出大家所须求的始末。

贰 、新闻是不是可以覆盖全数的顺序分支难题:

按照音讯内容的分裂,应用程序会挑选分歧的程序逻辑分支,如何可以覆盖全体的支行,古板方法唯有通过白盒测试完结,不过验收测试更偏重于黑盒或灰盒测试,由此过去隔三差五因为测试案例不到家,导致某一个未覆盖分支的次序难点流入生产条件。大家当前想到的不二法门,是透过在系统中导入存量的接口测试案例,并通过日记中抓获的测试案例,经过一段时间的积累,逐步形成贰个较为完好的接口测试案例库。假若可以旁路一台生产条件应用服务器日志,效果会更好,毕竟生产的贸易项目和气象是最健全的,当然那里还要化解生产数量脱敏等难题,对于金融行业还要面对众多制度流程的题材。

叁 、怎么样判定音信重返结果的不易难点:

每2个拔取对于接口报文的筹划都以依据一定的标准和习惯,大家只要求梳理出标记交易得逞景观的字段就足以了。有个别交易不含有那些字段,我们就必要展开人工判断,并对成功的结果进行格式化(比如timestamp,流水号等),提取MD5特征值,作为判断接口后续测试结果正确的依据。然而,状态字段是成功并不意味接口测试通过,终归再次来到结果中还蕴涵了累累工作数据字段须求表达。倘若那几个字段值变化相比较规律(比如平素不变、持续增多或减少),大家准备定义一些模型规则去看清它们。而那么些上蹿下跳的多少,这就留给人去判断了。其实,对于冒烟测试而言,大家觉得并不须要苛求去判断每一笔交易的正确,只必要总结多量测试案例结果的成功率,并与最初成功率进行比较,以判断测试结果是不是健康。

肆 、执行效能的标题

大家清楚的冒烟测试是要在玩命短的时刻内,对新的版本或测试环境进行3个准入测试,以判断其是还是不是享有开展后续是验收及适应性测试的标准,由此冒烟测试的频率至关首要。大家的策略是透过异步小批量作业的不二法门不间断的围观日志处理报文,天天定时并发的格局去履行测试案例,执行时间取决于版本安装时间或测试任务的急需,方今2万笔测试案例,基本可以决定在10分钟以内。

一往直前方案:

贯彻架构极度简单,就是一套开源的ELK日志采集架构,加上python开发的接口测试框架和结果总括功能,如下图所示:

882828九五至尊手机版 2

器重步骤如下:

1,通过开源ELK完毕利用日志的搜集与管理。在客户端陈设logstash
agent,并布署日志采集策略;日志记录以key-value的格式上送REDIS内存数据库,这几个企划重点是为了在client和server之间做1个缓冲,保障了日志记录的0丢失;ELSTICSEAKoleosCH提供了日记的全文检索功效,并提供了API服务用来外部调用

2,利用python的pyes库调用ELSATICSEACR-VCH的API服务,依照特征字段抓取xml和json格式的接口报文。

3,对征集到的接口报文举行格式化处理,格式化日期、流水号或时刻戳等字段,并对格式化后的报文做MD5的校验。

4,利用python的http和socket接口库达成接口测试案例,那里可能要依照不一样应用做一些客户化,尽量通过通用的章程落成。

5,对于丰盛的测试案例开展活动退出。为了有限支撑案例集的可用性,大家那里做了1个粗略的接口退出规则,若是推行超越一次且每一遍都未果的接口案例,会被系统自动定义为失效案例。

6,对案例的实践结果进行成功率分析和谬误归因分析,最后发现存在的接口难点。那里不再关切每一个测试案例再次回到的成功和退步,而是针对每一类接口的成功率、失败率和不当类型举办总括,从数值和数目变化的角度去发现标题。

7,接口定义平台提供了贰个web的接口定义模块,扶助工作测试人士依据接口文档编辑接口要素,并拼装成接口报文举行测试。对于复杂的贸易场景(比如流程长或相互次数多),可以在阳台上编制接口的调用顺序和上下项逻辑关系,完成一个比较复杂场景的接口测试。即使那个作用更偏重于自动化测试,可是这么些职能协助我们兑现了不能透过利用前段成效测试覆盖的接口测试,是分外好的填补。

透过上述格局,大家在2二十二日的日子里,在3个应用举行了考试,发现了30两个接口,接近2万笔报文案例,案例的有效可以高达了97%。通过天天对那么些案例举办自动化测试,发现了部分接口作用和应用环境配置的标题。

上述那种测试方法还只是从技术的角度测试,为了知足实际工作测试的需要,大家也兑现部分大致的法力:比如大家提供了多维度的测试结果总计;提供依照业务首要字的报文案例和测试结果的探寻作用,以便工作测试人士快捷的找到本身的测试案例;允许工作测试人士手工修改报文案例库,那样就可以跳过使用前端,间接指向接口开展测试;最终大家对每两遍执行时间都进展记录,形成了报文案例响应时间的基线,用于后续的接口质量评估。

小结和难题:

上述办法是贰个格外简单的接口冒烟测试方法,前提是功用测试覆盖过接口案例,并且接口报文种记录在日记中。随着案例和推行结果的频频积累,接口测试覆盖会越来越充足,总计结果会越来越精确。假使可以从生育条件日志中收获案例,那么测试效果会更好。上述方法还有为数不少不成熟的地点,比如对于测试结果的行使上、在挫折报文的归类和归因分析上,还应该会有更好的法子。如果周密推广实施,测试的功能,特别是测试报文提取和分析的频率还亟需越发升级。

欢迎大家拍砖。

 

原文链接:http://blog.tingyun.com/web/article/detail/1340

相关文章

Your Comments

近期评论

    功能


    网站地图xml地图