进化的测试

关注软件测试,白盒测试,自动化测试,性能测试

Entries for 十二月, 2008

Godaddy优惠券更新

今天GoDaddy又给我发过来了一个有关于优惠券的邮件,跟大家分享一下,有效期到2009年1月19号 优惠码:gdp1237c 可以在购买这些产品都时候应用: 购买Deluxe和Unlimited主机,额外优惠15% Web site or logo designs,额外优惠10%

图解微软性能测试工具VSTS2008 Load Test Agent安装

最近在用VSTS做性能测试的时候发现本地发起请求只能占用1个CPU,其余的CPU都是空闲的,上网查了一下,这个是因为用VSTS做性能测试的时候,发起压力的进程是VSTESTHost.exe,如果想让多核CPU的每一个CPU都产生压力,需要安装使用Visual Studio Team System Test Load Agent。这个工具是要钱的,即使你订阅了MSDN的什么版本,在下载中心里面下载到的都是90天试用版,可能也是因为这个原因,网上很少资料介绍如何安装和使用这个Load Agent。经过1个下午的摸索,成功配置成功,以下是在Windows Server 2003下安装Visual Studio Team System Test Load Agent的过程,VSTS,Controller和Agent都安装在同一台电脑上。

LoadRunner模拟客户端发送JSON格式的请求

JSON格式的数据现在用的越来越多,在MySpace.CN,存在着2中web应用,一种是基于.NET平台的web应用,另一种是记录LAMP平台的web应用,要让这两种应用能够互相通信,需要制定一种通信格式,当时选择的就是JSON格式。今天接到一个任务,是要对一个批量获取用户数据的接口进行测试,这个接口介绍JSON格式的请求,返回JSON格式的结果。由于最近LAMP团队比较忙,而且我又不太懂怎么弄一个提交JSON的页面,所以只能找找LoadRunner有没有一些函数可以用。最终找到了web_custom_request这个函数。

如何把GUID转换为整形INT数值

在前面一篇介绍在测试过程中创建唯一数据的文章中,推荐使用GUID作为生成唯一测试数据的方法,本人在测试过程中碰到一个问题,就是对于电话号码的生成,如何使得生成的数据尽可能地达到不重复。C#库里面有一个类-Random,这个类可以帮助开发者或者测试员生成随机数,但是大家都知道,计算机生成的随机数准确来说是伪随机数。本人曾经做过一个小实验,用当前时间作为随机种子,创建1000个随机数,里面重复值是相当多。 沿用前一篇文章的思想,我想把GUID转换为整数,那么应该怎么做呢?在程序内部,GUID也是可以看作是一个整数形式存在的变量,当要做这样子的转换的时候,需要了解的是转换会带来信息的丢失;就好像把一个long转换为一个int,有时候会有信息的丢失。我们可以容忍这个丢失,因为从实践来看,用GUID转成int,比Random类生成随机数好随机的多。以下是如何把GUID转换为int的一个方法:

在ASP.NET单元测试中进行调试

在前一篇关于在单元测试中使用HttpContext的文章中,本人提到了用ASP.NET单元测试的一个缺点是不能调试,今天我推翻我自己错误的论调,其实在ASP.NET单元测试中也是能调试的。 以前我以为ASP.NET单元测试就运行于WEB服务器上,所以我用Debug来运行,那么ASP.NET单元测试就自动Attach到Web服务器,就能调试了。但是实际上要让ASP.NET单元测试可以调试的话,正确的做法应该是: 在Web.config中,找到<compilation debug=”false”/>这个节点,然后把debug属性改为true 在ASP.NET单元测试代码的最开始处添加这样一句话“System.Diagnostics.Debugger.Break()” 运行该ASP.NET单元测试 在运行单元测试的时候,会有一个提示框出来,说程序遇到一个断点,是否进入调试,当然是选择调试啦。如图:

在C#单元测试中使用HttpContext的简单解决办法

场景:最近在测试一个.NET的Http Module,这个Module是用来做URL重写的。刚开始进展的比较顺利,因为该Module里面的方法参数基本上都是String,后来这个Module进行了一下重构,所有参数都变成了HttpContext了,这就直接导致原来的单元测试都跑不起来了,接着就开始了弄HttpContext了。 1. 采用Visual Studio自带的ASP.NET单元测试 刚开始我看了一下被测试的代码,虽然说用到了HttpContext,但是有很多地方我都可以绕过去的,意思就是这个HttpContext只是名以上需要的一个参数,只要它不是NULL就可以了,并不影响我的测试,所以我采用了ASP.NET Unit Test的办法来获取一个HttpContext,这个方法实现起来是最简单的,但是会有一些问题,后面会提及到。

单元测试中的常用测试模式

单元测试跟软件设计一样,有一些常用的模式,这篇文章是介绍一些常用的模式,其中的示例是C#代码,都比较简单,我想大家都能看懂。下面进入正题: 1. 准备,执行,断言(Arrange, Act, Assert)。这种模式是非常常见的,套用这种模式进行单元测试通常的做法如下: 准备测试环境,测试数据等 执行被测试方法 用断言来验证执行结果 下面是一段测试代码,被测方法的功能是把字符串中每个单词的首字母转为大写,特殊字符用下划线替代。

WordPress登陆后功能菜单没有改变的原因及其解决办法

这两天很奇怪,我登陆WP以后,首页的“功能”菜单居然没有改变,但是我的确是处于已经登陆的状态的。因为我装了Google Analyticator插件,并且设置了对于ADMIN是不记录Google统计的。在查看页面的源代码,看不到Google的统计代码,由此可以推断我是已经处于登陆的状态的,但是为什么“功能”菜单没有改变呢?如下图:

PEX-.NET自动化白盒测试工具的介绍(1)

PEX的全称是(Program EXploration),是一款在.NET下可应用的自动化白盒测试工具,来自于微软研究院。PEX通过分析代码来自动生成测试用例。对于程序里面的每一行代码,PEX都会尽可能地生成合适的输入值来达到提高覆盖率的目标。同时PEX还会分析代码中的分支,生成覆盖更多分支的测试代码(输入数据);PEX在执行代码的同时会监控和分析代码的控制流和数据流,了解程序的行为。每运行完单一个测试以后,PEX会选择一条在前面的测试中没有覆盖到的路径,并且尝试执行它。这一切都是约束求解算法来实现的,官方文档中提到的是一个叫Z3的约束求解器。因为PEX了解被测代码内部结构和行为,所以它不是一个简单地输入随机参数的黑盒测试工具。PEX不会尝试枚举所有可能的输入,事实上也不可能枚举完所有的可能输入。

有效期至2008年圣诞节的GoDaddy优惠码

早上收到Godaddy的一个邮件,发来了一个Godaddy的优惠码,这个优惠码可以在买Godaddy主机的时候额外得到15%的优惠哦,经过本人测试,能用在Godaddy三种不同的主机的购买中。要注意的是,这个优惠码的有效期比较短,只能是从今天(2008年12月10日)到2008年的圣诞节(2008年12月25日)。需要买主机的朋友要抓紧时间哦! Godaddy优惠码:gdp1210a Godaddy优惠码:gdp1222a 优惠码有效期:2008年圣诞节前