对这个问题,我个人的看法是,基本上可以考虑从三个途径来解决该问题:

1、第一种方法,也是最容易想到的,在被测系统中暂时屏蔽验证功能,也就是说,临时修改应用,无论用户输入的是什么验证码,都认为是正确的。这种方法最容易实现,对测试结果也不会有太大的影响(当然,这种方式去掉了“验证验证码”这个环节,不过这个环节本来就很难成为系统性能瓶颈)。但这种方法有一个致命的问题:如果被测系统是一个实际已上线的系统,屏蔽验证功能会对已经在运行的业务造成非常大的安全性的风险,因此,对于已上线的系统来说,用这种方式就不合适了;

2、第二种方法,在第一种方法的基础上稍微进行一些改进。第一种方法带来了很大的安全性问题,那么我们可以考虑,不取消验证,但在其中留一个后门,我们设定一个所谓的“万能验证码”,只要用户输入这个“万能验证码”,我们就验证通过,否则,还是按照原先的验证方式进行验证。这种方式仍然存在安全性的问题,但由于我们可以通过管理手段将“万能验证码”控制在一个小的范围内,而且只在性能测试期间保留这个小小的后门,相对第一种方法来说,在安全性方面已经有较大的改进了;

3、如果安全性对应用来说真的是至关重要的,不容许有一丝一毫的闪失,那我们还可以用更进一步的方法来处理这个问题。一般的性能测试工具(MI的LR、Seague的Silk performer等)都能够调用外部的DLL或是组件接口,因此,可以考虑获得“验证码验证”部分的实现,写一个验证码获取的DLL,在测试脚本中进行调用即可。

除了这三种方法以外,可能还会有其他的方法存在,也希望各位能提供一些其他的思路。在我的实践中,第二种方法用得比较多,对未上线系统系统的内部性能测试,有时候也用第一种方法。但要提醒的是,如果针对的是已上线系统,无论用哪种方法,测试完成后,都必须立刻将应用恢复,并对系统进行一次安全审计,以免在测试期间被他人入侵。第三种方法用得比较少,而且具体上还依赖于验证组件是否能提供这样的接口

该文章为转载:http://www.51testing.com/html/14/178314-225733.html

该文章如果对您有所帮助,麻烦请点赞支持一下,谢谢^_^

最新文章

  1. 无语啊,sublime给我弄乱玩,玩坏了,而且安装插件也安装不了
  2. Android开发之详解五大布局
  3. 使用Go开发HTTP中间件
  4. Struts2 validate校验
  5. Lucene 4.0
  6. Lunch Time
  7. java中的public,protected,private权限修饰
  8. WebDriver(Selenium2) 处理可能存在的JS弹出框
  9. C#学习笔记-观察者模式
  10. Could not resolve view with name '***' in servlet with name 'dispatcher'
  11. qt: 系统默认程序打开文件或者软件;
  12. Opennebula常用命令
  13. 附8 zipkin
  14. 11. pt-heartbeat
  15. 每日英语:Six Ways to Modernize Your Car
  16. HDU 1010 Tempter of the Bone (广搜+减枝)
  17. 每周荐书:云原生、Docker、Web算法(评论送书)
  18. select2切换事件如何生效
  19. Hadoop的Writerable在Spark无法序列化的问题
  20. [转]Passing data between pages in JQuery Mobile mobile.changePage

热门文章

  1. Linux - history命令的常用方法
  2. vue 自学笔记(4): 样式绑定与条件渲染
  3. python网络编程初级
  4. 凉凉了,Eureka 宣布闭源,Spring Cloud 何去何从?
  5. web自动化测试---web页面元素的定位
  6. 持续集成工具-Jenkins 使用介绍
  7. MySQL 性能管理及架构设计指南
  8. 从逻辑思维中学习CSS,从宽高说起
  9. 读vue-0.6-filters.js源码
  10. java 判断两个时间段是否有交集