微信号:grzlwx

介绍:光荣之路官方资讯

memory leak test 引发的思考

2015-06-03 23:03 光荣之路


toolbar memory leak test引起的思考


最近项目组中一直在做模块的memory leak测试,我是负责toolbar的部分,所以toolbarmemory leak test需要我来完成。

先简单介绍一下toolbar的基本功能吧,我们的产品是mac上面的安全产品,toolbar主要是装在browser上面(支持的browserchrome,Firefox,Safari),当用户通过browser去冲浪的时候,比如我们支持大名鼎鼎的搜索引擎(google,baidu等等),toolbar就会对用户的搜索结果进行评级(rating.如果一个搜索结果是危险的(dangerous,那么toolbar就会告诉用户,怎么告诉呢,就会将这个link标红,并作相应的标志。也就是从web的角度来保护用户去避免打开危险的网站,以免中毒。

以上是toolbar对于用户层面的表现形式。然而对于tester对它的认识应该更加深入一点,最起码它的工作原理和工作流程必须要熟烂于心中。

首先是Toolbar的脚本将搜索引擎所搜索出来的结果拿到(比如web页面上面的a结点),发送给本地的server,本地server将三到四个url为一组创建一个进程,给远程服务器发送请求,然后返回给本地server,最后本地server根据返回的结果,调用相应的脚本,在web页面上来插入标志给用户反馈信息。

为了营造测试环境,我们通过seleniumchromedriver来启动browser,browser一些搜索关键字的url。通过点击下一页toolbarrate很多批量的不同的url从而来完成memory leak的测试。

这个测试方法满足了一段时间的测试,也取得了相应的效果,我们成功地发现了toolbarmemory leak。但是测试人太累了,虽然是写的automation的脚本,它只要自己执行即可。然而不幸地是这个方法太依赖于其他的组件,比如selenium(有selenium版本的兼容问题吧),比如网络,当网络很差的时候,通过脚本打开浏览器不能成功get url,而且很容易出现browser hang的情况,所以在测试的时候简直太痛苦了。

在抱怨之余,一个同事提出了很好的建议,可以写脚本去模拟浏览器发送toolbar rating的请求。这就需要你充分了解toolbar的工作原理了。

那么怎么实现呢?

在我们通过browser去访问一个google搜索关键字的时候,实际上也是通过toolbar的脚本先抓取网页的url到服务器来完成rating的整个过程,其实客户端需要做的只是发送url给服务器而已。

于是先尝试着,用requests组件来发送url请求,并且模拟toolbarrequest head.后面的本地serverurl请求发送给远程server,然后再从远程server去返回就不管用户的事情啦。所以我们通过用python脚本来模拟toolbarrating请求来测试相当稳定,也很快,解决了之前的烦恼,也节约了大量的时间。

其实不仅仅是做软件测试,很多时候,即使再困恼的时候都会有解决的办法,当然解决办法多少是与你了解一个东西的多少有关系的。当你知道的越多,你能想出来的法子就更多啦。

在我们以后学习,工作,生活中遇到问题应该首先要想着有没有更好的解决方法,这样将会来来事半功倍的效果。

(作者:qjcslg 来源:http://www.51testing.com/html/58/324458-859362.html)

光荣之路软件测试培训

官网:http://www.gloryroad.cn/

微信公众号:gloryroadtrain

性能测试QQ群:415987441
软件测试招聘QQ群: 203715128
自动化3群QQ: 371211499



 
光荣之路 更多文章 今天晚上的 linux 公开课- Awk 编程 7月28日(今天)晚上的 linux 公开课- shell编程 8月4日(今天)晚上的 linux 公开课- shell编程 9月1日(本周一)晚8点半,光荣之路Web自动化系列基础课—javascript第二讲 推荐本好书《与机器赛跑》
猜您喜欢 编写高效JavaScript代码 黑客的克星或叫“白客” 西安站 | 第十届CDConf中国持续交付大会,8月6日继续嗨起! #SQL# 完全图解,分分钟弄懂SQL JOIN 8 个 Awesome CSS 过滤库 & 工具