转帖:
现在越来越多的网站为了安全性或是防止Spam的侵害,采用了验证码的校验技术。简单地说,验证码就是在进行登录或是内容提交的时候,页面上会随机出现一个人工可识别,但机器不可识别的验证字符串(一般是采用背景、扭曲等方式产生的图片),要求登录或是提交内容时同时输入这个验证码。 验证码可以有效防止对口令的刺探和所谓的网络推广软件带来的大量的Spam内容,目前已经被许多Internet或是Intranet应用接受为标准的实现方式。但对性能测试来说,这种验证码又带来了很大的问题。
最突出的问题是,性能测试工具本身是自动化工具,由于这种验证码采用的是“防止自动化工具尝试”的方法,因此,在录制了脚本之后会发现,很难对脚本进行调整,以使其适应验证码验证的需要。已经不止一次有人提到这个问题,并询问有没有较好的解决方案。 对这个问题,我个人的看法是,基本上可以考虑从三个途径来解决该问题:
1、第一种方法,也是最容易想到的,在被测系统中暂时屏蔽验证功能,也就是说,临时修改应用,无论用户输入的是什么验证码,都认为是正确的。这种方法最容易实现,对测试结果也不会有太大的影响(当然,这种方式去掉了“验证验证码”这个环节,不过这个环节本来就很难成为系统性能瓶颈)。但这种方法有一个致命的问题:如果被测系统是一个实际已上线的系统,屏蔽验证功能会对已经在运行的业务造成非常大的安全性的风险,因此,对于已上线的系统来说,用这种方式就不合适了;
2、第二种方法,在第一种方法的基础上稍微进行一些改进。第一种方法带来了很大的安全性问题,那么我们可以考虑,不取消验证,但在其中留一个后门,我们设定一个所谓的“万能验证码”,只要用户输入这个“万能验证码”,我们就验证通过,否则,还是按照原先的验证方式进行验证。这种方式仍然存在安全性的问题,但由于我们可以通过管理手段将“万能验证码”控制在一个小的范围内,而且只在性能测试期间保留这个小小的后门,相对第一种方法来说,在安全性方面已经有较大的改进了;
3、如果安全性对应用来说真的是至关重要的,不容许有一丝一毫的闪失,那我们还可以用更进一步的方法来处理这个问题。一般的性能测试工具(MI的LR、Seague的Silk performer等)都能够调用外部的DLL或是组件接口,因此,可以考虑获得“验证码验证”部分的实现,写一个验证码获取的DLL,在测试脚本中进行调用即可。
除了这三种方法以外,可能还会有其他的方法存在,也希望各位能提供一些其他的思路。在我的实践中,第二种方法用得比较多,对未上线系统系统的内部性能测试,有时候也用第一种方法。但要提醒的是,如果针对的是已上线系统,无论用哪种方法,测试完成后,都必须立刻将应用恢复,并对系统进行一次安全审计,以免在测试期间被他人入侵。第三种方法用得比较少,而且具体上还依赖于验证组件是否能提供这样的接口。
分享到:
相关推荐
WEB验证解决WEB性能测试中的验证码问题软件测试现在越来越多的网站为了安全性或是防止Spam的侵害,采用了验证码的校验技术。简单地说,验证码就是在进行登录或是内容提交的时候,页面上会随机出现一个人工可识别,但...
性能测试应在系统开发周期中的早期阶段进行,以便尽早发现和解决问题。通常在系统基本功能开发完成后即可开始。 #### 六、集合点的意义与设置方法 - **集合点**:用于控制虚拟用户的启动时间,确保它们在同一时间...
Apache JMeter是一款强大的、开放源代码的性能测试工具,适用于Web应用、FTP服务器、数据库和其他通用协议。它能够模拟大量并发用户,以此来测试服务器的性能和稳定性。本文将详细介绍如何使用JMeter进行性能测试。 ...
Apache JMeter是一款强大的性能测试工具,常用于对Web应用程序进行压力测试和负载测试。这个"jmeter测试登录验证码jar包"包含了一些核心组件和库,它们对于理解和执行JMeter的验证码处理测试至关重要。以下是这些jar...
9. 性能测试:理解性能测试术语(如响应时间、吞吐量、并发用户数等)并使用相应的测试工具(如JMeter)来评估Web应用的性能。 10. 测试总结:测试总结是一个回顾和分析测试过程和结果的阶段,它帮助测试人员确定...
WEB安全测试是确保网站应用程序免受恶意攻击的关键环节。它涉及到多个层面的检查与防护,包括Web应用程序部署环境、应用程序自身、数据库问题以及容错能力等。以下将详细阐述这些测试分类及其防范方法。 1. **Web...
总的来说,这个"jmeter登陆验证码jar包"组合可能是一个针对JMeter的定制化解决方案,旨在帮助测试人员在性能测试中克服验证码的障碍,从而更有效地进行登录测试。通过理解和利用这些库,可以实现自动化识别验证码,...
在这个web项目中,开发者可能使用了这些测试框架来编写针对模拟登录功能的测试用例,确保功能的完整性和可靠性。 【文件名称】:apache-tomcat-7.0.37 Apache Tomcat是一款开源的Java Servlet容器,常用于部署和...
因此,在实际的性能测试过程中,我们需要解决验证码这一障碍,以确保测试的准确性。这里提到的“jmeter 验证码识别”是关于如何编写自定义插件或者利用现有插件,使JMeter能够自动识别并输入验证码。 首先,描述中...
这些试验可能包括使用光学字符识别(OCR)技术、机器学习算法等,尝试去除验证码上的纹理干扰,从而识别出验证码中的字符。通过这些试验结果,可以分析现有验证码在安全性上存在的不足。 4. 验证码的安全性问题 ...
在Web测试中,性能测试是指对Web应用程序的性能进行评估和优化。包括: * Web应用程序的响应时间测试:验证Web应用程序的响应时间是否在可接受的范围内。 * Web应用程序的并发测试:验证Web应用程序在高并发情况下...
- **图形验证码对性能测试的影响及技术方案**:图形验证码会影响测试的自动化程度,需要采取特殊的技术手段来绕过这一限制。 - **使用PORTMAPPING技术录制两台机器间通信**:在性能测试中模拟不同机器间的通信,以...
**JMeter是一款开源的压力测试工具,主要用于Web应用的性能测试。** ##### 1. 基本操作 **1.1 新增测试计划** - **步骤**: 在JMeter界面中,选择菜单栏的“文件” -> “新建”,创建一个新的测试计划。 - **线程组...
"HFSoft.Component.NumberImage.Test"可能是一个测试项目或者包含测试代码的文件夹,用于验证组件的正确性和性能,开发者可以通过运行这些测试来确保验证码生成功能的正常工作。 使用.NET验证码生成组件时,开发者...
在性能测试领域,LoadRunner是一款备受推崇的工具,它能够模拟大量用户并发操作,从而测试应用程序的性能和稳定性。...在LoadRunner的实践中,不断学习和探索,才能更好地利用这一工具解决复杂的性能测试问题。
8. **测试与调试**:项目的质量保证可能包含了单元测试、集成测试和性能测试,确保系统的稳定性和可靠性。这可能涉及到JUnit、Selenium等测试工具的使用。 9. **部署与运维**:项目部署可能涉及到Docker容器化、...
验证码(CAPTCHA)全称“Completely Automated Public Turing test to tell Computers and Humans Apart”,即全自动区分计算机和人类的图灵测试,它的主要目的是区分用户是真实的活人还是机器。 Java验证码库`...
#### 二、Web性能测试计划 **2.1 性能测试概述** 性能测试是评估软件系统在特定条件下运行表现的过程。它包括但不限于负载测试、压力测试和稳定性测试等。 - **负载测试**:旨在评估系统在不同负载水平下的性能...
验证码(CAPTCHA)全称为“全自动区分计算机和人类的图灵测试”,它的主要目的是为了防止恶意自动化程序(如机器人或爬虫)对网站进行非法操作,比如批量注册、刷票、垃圾评论等。验证码通常会显示一串随机字符,...