北大青鸟java培训:解决WEB性能测试中的验证码问题?

Python014

北大青鸟java培训:解决WEB性能测试中的验证码问题?,第1张

现在越来越多的网站为了安全性或是防止Spam的侵害,采用了验证码的校验技术。

简单地说,验证码就是在进行登录或是内容提交的时候,页面上会随机出现一个人工可识别,但机器不可识别的验证字符串(一般是采用背景、扭曲等方式产生的图片),要求登录或是提交内容时同时输入这个验证码。

验证码可以有效防止对口令的刺探和所谓的网络推广软件带来的大量的Spam内容,目前已经被许多Internet或是Intranet应用接受为标准的实现方式。

但对性能测试来说,这种验证码又带来了很大的问题

最突出的问题是,性能测试工具本身是自动化工具,由于这种验证码采用的是“防止自动化工具尝试”的方法,因此,在录制了脚本之后会发现,很难对脚本进行调整,以使其适应验证码验证的需要。

已经不止一次有人提到这个问题,并询问有没有较好的解决方案。

对这个问题,我个人的看法是,基本上可以考虑从三个途径来解决该问题:1、第一种方法,也是最容易想到的,在被测系统中暂时屏蔽验证功能,也就是说,临时修改应用,无论用户输入的是什么验证码,都认为是正确的。

这种方法最容易实现,对测试结果也不会有太大的影响(当然,这种方式去掉了“验证验证码”这个环节,不过这个环节本来就很难成为系统性能瓶颈)。

但这种方法有一个致命的问题:如果被测系统是一个实际已上线的系统,屏蔽验证功能会对已经在运行的业务造成非常大的安全性的风险,因此,对于已上线的系统来说,用这种方式就不合适了2、第二种方法,在第一种方法的基础上稍微进行一些改进。

第一种方法带来了很大的安全性问题,那么我们可以考虑,不取消验证,但在其中留一个后门,我们设定一个所谓的“万能验证码”,只要用户输入这个“万能验证码”,我们就验证通过,否则,还是按照原先的验证方式进行验证。

这种方式仍然存在安全性的问题,但由于我们可以通过管理手段将“万能验证码”控制在一个小的范围内,而且只在性能测试期间保留这个小小的后门,相对第一种方法来说,在安全性方面已经有较大的改进了3、如果安全性对应用来说真的是至关重要的,不容许有一丝一毫的闪失,那我们还可以用更进一步的方法来处理这个问题。

一般的性能测试工具(MI的LR、Seague的Silkperformer等)都能够调用外部的DLL或是组件接口,因此,成都电脑培训http://www.kmbdqn.cn/建议可以考虑获得“验证码验证”部分的实现,写一个验证码获取的DLL,在测试脚本中进行调用即可。

性能问题分很多种情况,服务器等硬件问题暂不考虑,一般代码方面最常见的有前端问题、后台逻辑处理和数据库相关问题

前端问题有以下几种方法:

梳理页面布局,除去多余的部分,减少浏览器渲染时间

合并JS、图片、css等文件,减少前台对后台的请求次数

压缩js和css文件,并对图片进行无损压缩,减少页面打开时的网络传输数据量

后台代码问题有以下几种:

提高代码质量,减少不必要的集合或数组操作或者对象操作

优化逻辑处理过程

数据库相关问题有以下几种:

优化sql语句,减少sql语句中全表扫描次数,尽量使用索引进行查询

优化代码,减少数据库连接开关次数和一次查询所查询的数据量