显示标签为“automated testing”的博文。显示所有博文
显示标签为“automated testing”的博文。显示所有博文

2013年4月2日星期二

性能测试中使用tesseract-ocr工具来识别验证码的一些想法

    最近一周我在搞验证码的问题,幸好有tesseract-ocr工具的支持,可以识别保存在本地的图片上的字符等,就是利用这一点,好多朋友把这一功能用在了识别验证码上(有些验证码不能被识别,精确度不高,可能是由于验证码中噪点的存在,妨碍了识别)。我只是照葫芦画瓢,解决了LoadRunner中识别验证码的问题,全是基于C环境的。详细的可以参看我的另一篇博文:http://www.cnblogs.com/zhuque/archive/2013/03/06/2946565.html

     由于tesseract-ocr工具对一些验证码的识别精确度不是太高,甚至有些图片根本识别不出来,还是建议在正式压力测试时,不要使用此方法来解决验证码的问题,更好的办法是在代码中来解决,或使用万能验证码。另外一个方法是把登录交易的代码(涉及验证码代码)放到vuser_init()中去,即登录成功后,频繁的去压测后面的交易。但也有很多操作类型的交易中也有验证码,比如:支付提交,这个就必须使用一个万能验证码来解决。

     在性能测试过程中不要纠结验证码的问题,毕竟98%以上的性能测试都在专门的独立的测试环境中来进行的,都可以通过修改code来解决验证码问题,方法有很多。但也不排除有些变态的CTO或者客户要求在线上环境来进行压测,我们可以试着用tesseract-ocr来识别验证码,如果识别不出,再试着去除验证码图片中的噪点后再去识别。怎么去除验证码图片中存在的噪点,以后再去研究,看样子这是一个大工程。

.NET程序内存分析工具CLRProfiler的使用

大家都知道.net有一套自己的内存(垃圾)回收机制,除非有一些数据(方法)长期占有内存不随着垃圾回收功能而释放内存,这样就造成了我们经常说的内存泄露、内存持续增长得不到释放等问题导致APS.net网站或者C/S应用程序的用户无法正常使用。最终会导致用户通过客服人员或者技术支持人员投诉公司的技术部门,形成一连串的未知的不良反映。

不管哪位性能测试人员,遇到这样的问题都是摸不着头脑,不知从何处下手。.net环境中不像JAVA有那么多的工具可以支撑,比如性能测试经常用到的Jconsole、Jprofiler等工具,并且基于JAVA运行环境的在打印GC日志方面也很强大。对于.net平台,微软也提供的.net辅助工具CLR Profiler可以很好的帮助我们的性能测试人员以及研发人员,找到内存没有及时回收,占着内存不释放的方法(详细到这个方法下面定义的数组或者其他变量)。

下载地址:http://search.microsoft.com/en-us/DownloadResults.aspx?q=clr%20profiler

可根据自己电脑.NET的版本下载相应的CLR Profiler,我下载的是CLR Profiler for .NET Framework 4版本的。

下载后提示解压缩,选择要加压到的目录;然后进入D:\SoftWare\CLRProfiler4\CLRProfiler\Binaries目录下选择对应操作系统64位或者32位的CLRProfiler.exe。
在说一下,CLRProfiler可以分析.net平台开发的几乎所有的产品,包括C/S应用程序、服务和asp.net编写的网站等。

我的环境是:IIS服务器(asp.net开发的站点)+MS sql

打开CLRProfiler界面,选中Profiling active、Allocation和Calls,【Start Application】是加载.net开发的exe程序的;【Start URL】是输入被测页面URL的;

我要在IE中测试asp.net开发的页面,CLR Profiler首先要加载IIS所需要的环境变量,CLR Profiler然后提示你加载ASP.NET应用程序和等待ASP.NET工作进程启动。

在File菜单中点击Profile ASP.NET

停止IIS服务可能要很长时间,需要耐心等待。最后提示可以测试页面啦

“Waiting for ASP.NET to start common language runtime - this is thetime to load your test page”

点击【Start URL】按钮,输入我们要测试的页面URL,点击OK,就会自动打开我们要检查内存有不释放内存的页面,多在页面中使用一会,以便CLR Profiler收集更多的数据。

当已完成页面的运行,请点击CLR Profiler窗口中的 【Kill ASP.NET】。然后CLR Profiler自动关闭IIS,移除环境变量,重启IIS。

点击【Allocation Graph】打开内存分配视图,在这个视图当中我们可以看出堆栈是如何分别对象的

点击【Objects by Address】按钮将会显示各种方法在内存中占用的直方图界面

可以通过选中那个视图中的某一个柱形条,右击show who allocated。点击这个菜单项显示关于所选分配的特定详细内容,而不是所有分配的

点击[TimeLine]按钮,在打开的图片中可以清晰的看出各次回收时间和前后内存占用量情况

在view菜单中,有很多没有显示的菜单。

点击call tree 菜单,可以看到在不同线程下,所有方法占用内存大小,被调用次数等信息

如果看不到图片请查看我的另一篇文章:http://blog.csdn.net/wy3552128/article/details/8158938

使用DDMS测试安卓手机APP的性能(android)

安装/配置:

通过另外一个工具也可以测试手机客户端APP的性能,这就是android开发包中的DDMS工具(Dalvik Debug Monitor Service),先来说一下android开发包的安装:

1、 首先安装JDK,1.5以上的版本

2、 在安装完JDK 后,就需要下载及安装Android SDK,即: android-sdk-windows,压缩包大约有551M左右

3、 解压缩android-sdk-windows,放在C盘的根目录下,配置系统变量path 的值为:C: \android-sdk-windows\tools

启动:

1、 可以在运行中进入ddms

clip_image001

2、也可以在C: \android-sdk-windows\tools目录下启动ddms.bat

连接:

1、 使用数据线连接安卓系统的手机,确认手机是处于“USB调试”模式

1)在手机上按下“Menu”键,在弹出的菜单中选择“Setting(设置)”;
2)选择“应用程序”;
3)在此界面勾选“未知来源”,然后选择“开发”;
4)勾选“USB调试”,“保持唤醒状态”;

2、 在ddms的左边框中会显示手机已经打开的应用程序(APP)进程,如果不显示,可以多连接几次,或者换个手机试试

clip_image002

操作:

前提是要打开我们要分析的手机客户端app程序(网上随便找的APK程序)

1. 点击选中想要监测的进程,比如system_process进程;
2. 点击选中Devices视图界面中最上方一排图标中的“Update Heap”图标;
3. 点击Heap视图中的“Cause GC”按钮;
4. 此时在Heap视图中就会看到当前选中的进程的内存使用量的详细情况。

分析:

如何才能知道我们的程序是否有内存泄漏的可能性呢。这里需要注意一个值:Heap视图中部有一个Type叫做data object,即数据对象,也就是我们的程序中大量存在的类类型的对象。在data object一行中有一列是“Total Size”,其值就是当前进程中所有Java数据对象的内存总量,一般情况下,这个值的大小决定了是否会有内存泄漏。可以这样判断:

a) 不断的操作当前应用,同时注意观察data object的Total Size值;

b) 正常情况下Total Size值都会稳定在一个有限的范围内,也就是说由于程序中的的代码良好,没有造成对象不被垃圾回收的情况,所以说虽然我们不断的操作会不断的生成很多对象,而在虚拟机不断的进行GC的过程中,这些对象都被回收了,内存占用量会会落到一个稳定的水平;

c) 反之如果代码中存在没有释放对象引用的情况,则data object的Total Size值在每次GC后不会有明显的回落,随着操作次数的增多Total Size的值会越来越大,直到到达一个上限后导致进程被kill掉。

d) 此处已system_process进程为例,在我的测试环境中system_process进程所占用的内存的data object的Total Size正常情况下会稳定在2.2~2.8之间,而当其值超过3.55后进程就会被kill。

clip_image004

clip_image006

clip_image008

clip_image010

clip_image012

参考文档:http://hi.baidu.com/2012jasonhao/item/27fafb0c014a5ac42f4c6b25

2013年3月18日星期一

专业的人做专业的事


北京联众时代科技有限公司有一直软件测试技术力量深厚的软件测试团队,他们是一支充满活力、创造力、经验丰富、团结向上的技术测试团队,他们中的每个成员都曾任职过国内大型IT公司的项目经理、软件测试架构师、软件测试分析师、测试工程师,具有深厚的测试团队管理和软件开发、软件测试技术创新功底。
团队成员平均拥有超过3年的软件项目经验和6-8年的软件测试经验,精通业界主流的测试工具,如 LoadRunnerWinRunnerQTPTestDirectorRational RobotQuantity Center等工具。
      联众时代提倡“专业的人做专业的事,以最快的速度回应客户,以最优惠的价格为客户提供测试服务,为客户打造更好的解决方案。作为软件测试服务行业的佼佼者,联众时代拥有前沿的软件测试技术和团队管理模式,联众时代有理由相信,与客户之间的合作,是一个双赢的结局。

关于联众时代


北京联众时代科技有限公司2008年团队建立以来,一直专注于软件测试外包行业,主要从事国内应用领域的大型软件测试工作。
为互联网电子商务、游戏、企业门户网站、移动终端、金融、电信、人事管理、医疗、保险、物流、零售业、ERP、财务软件等行业,提供功能测试、自动化测试、并发压力测试、安全测试、手机客户端(适配)测试、兼容测试、文档测试、白盒测试、项目验收、测试培训,以及人力资源外派等服务。辅助客户组建软件测试团队、建立测试流程、测试规范,协助企业建立基于企业级的产品性能测试体系、产品功能回归测试体系等。
本着对中国的测试行业发展负责、对客户负责、对投资人负责,公司全体上下通力协作,以推动中国软件测试领域发展为己任,为客户产业链合作商创造最大价值为动力,打造成中国乃至全球知名的专业测试厂商为目标,为中国和全球信息化行业提供高质量、低价格、优服务的测试服务及解决方案。
二十一世纪是信息技术时代,市场为IT企业提供了广阔的发展空间,北京联众时代科技有限公司为适应建立现代企业制度的需要,努力提高企业自身的经济效益,为振兴国家软件产业以及软件教育产业做出更多的努力与贡献。

联众时代软件测试外包

联众时代软件测试外包网站:http://www.bjstos.com/


PC版:www.bjstos.com     移动终端版:wap.bjstos.com
      
联系邮箱:bjstos@163.com         admin@bjstos.com

周一~周六    上午9:30~12:00 下午14:00~18:00
24 x 7 测试咨询服务,发邮件、QQ留言均可,谢谢您的关注~

测试外包QQ:1174758060

专业的第三方软件测试外包团队,提供软件/网站功能测试、并发压力测试、安全测试、手机客户端测试、自动化测试、软件测试培训。