永远不要哀叹,像树一样用一生绿着,然后成就一个金色而成熟的梦!
memory leak test 引发的思考
上一篇 /
下一篇 2014-03-25 18:56:24
/ 个人分类:测试背后
由toolbar memory leak test引起的思考
最近项目组中一直在做模块的memory leak的测试,我是负责toolbar的部分,所以toolbar的memory leak test需要我来完成。
先简单介绍一下toolbar的基本功能吧,我们的产品是mac上面的安全产品,toolbar主要是装在browser上面(支持的browser有chrome,Firefox,Safari),当用户通过browser去冲浪的时候,比如我们支持大名鼎鼎的搜索引擎(google,baidu等等),toolbar就会对用户的搜索结果进行评级(rating).如果一个搜索结果是危险的(dangerous),那么toolbar就会告诉用户,怎么告诉呢,就会将这个link标红,并作相应的标志。也就是从web的角度来保护用户去避免打开危险的网站,以免中毒。
以上是toolbar对于用户层面的表现形式。然而对于tester对它的认识应该更加深入一点,最起码它的工作原理和工作流程必须要熟烂于心中。
首先是Toolbar的脚本将搜索引擎所搜索出来的结果拿到(比如web页面上面的a结点),发送给本地的server,本地server将三到四个url为一组创建一个进程,给远程服务器发送请求,然后返回给本地server,最后本地server根据返回的结果,调用相应的脚本,在web页面上来插入标志给用户反馈信息。
为了营造测试环境,我们通过selenium的chromedriver来启动browser,给browser一些搜索关键字的url。通过点击”下一页”让toolbar来rate很多批量的不同的url从而来完成memory leak的测试。
这个测试方法满足了一段时间的测试,也取得了相应的效果,我们成功地发现了toolbar的memory leak。但是测试人太累了,虽然是写的automation的脚本,它只要自己执行即可。然而不幸地是这个方法太依赖于其他的组件,比如selenium(有selenium版本的兼容问题吧),比如网络,当网络很差的时候,通过脚本打开浏览器不能成功get url,而且很容易出现browser hang的情况,所以在测试的时候简直太痛苦了。
在抱怨之余,一个同事提出了很好的建议,可以写脚本去模拟浏览器发送toolbar rating的请求。这就需要你充分了解toolbar的工作原理了。
那么怎么实现呢?
在我们通过browser去访问一个google搜索关键字的时候,实际上也是通过toolbar的脚本先抓取网页的url到服务器来完成rating的整个过程,其实客户端需要做的只是发送url给服务器而已。
于是先尝试着,用requests组件来发送url请求,并且模拟toolbar的request head.后面的本地server将url请求发送给远程server,然后再从远程server去返回就不管用户的事情啦。所以我们通过用python脚本来模拟toolbar的rating请求来测试相当稳定,也很快,解决了之前的烦恼,也节约了大量的时间。
其实不仅仅是做软件测试,很多时候,即使再困恼的时候都会有解决的办法,当然解决办法多少是与你了解一个东西的多少有关系的。当你知道的越多,你能想出来的法子就更多啦。
在我们以后学习,工作,生活中遇到问题应该首先要想着有没有更好的解决方法,这样将会来来事半功倍的效果。
收藏
举报
TAG: