十一 042008
 

在测试的过程中,我们经常需要创建一些唯一的值来进行测试,例如测试注册模块的时候,需要有唯一的邮件地址,那么什么样的方法才是正确地生成随机数,或者唯一数的好方法呢?我们下面来看看

很多语言的公共库都会有生成随机数的类,例如在C#里面我们或许可以这样子来生成一些随机的string。

string uniqeName = “MyTests” + DateTime.Now.ToString();//

用时间是个比较的选择,但是,如果是自动化脚本,那么会因为执行的速度太快,这有可能使得生成的string会有重复。

那么看看Random类又如何?

Random random = new Random();

String uniqueName = random.Next(1000).ToString();

不要被这个类的名字所欺骗,计算机生成的其实都是伪随机数。

下面是一种改进型的方法,时间+随机数

Random random = new Random();

string uniqueString = DateTime.Now.ToString() + random.Next(1000);

这个是比前面两种有所改进,但是还是会有重复数据的可能,因为随机,并不代表唯一。

一个比较好的方法是用GUID,

string uniqueString = Guid.NewGuid().ToString(“N”);

我们可以在这个string后面补上邮件地址(这里请忽略为啥不用StringBuilder),GUID是生成随机测试数据的一种好的选择。

Related posts:

  1. 如何把GUID转换为整形INT数值
  2. PEX-.NET自动化白盒测试工具的介绍(1)
  3. 单元测试中的常用测试模式
  4. 测试代码重构实例

  One Response to “在测试中使用正确的方法创建唯一的测试数据”

  1. [...] 在前面一篇介绍在测试过程中创建唯一数据的文章中,推荐使用GUID作为生成唯一测试数据的方法,本人在测试过程中碰到一个问题,就是对于电话号码的生成,如何使得生成的数据尽可能地达到不重复。C#库里面有一个类-Random,这个类可以帮助开发者或者测试员生成随机数,但是大家都知道,计算机生成的随机数准确来说是伪随机数。本人曾经做过一个小实验,用当前时间作为随机种子,创建1000个随机数,里面重复值是相当多。 [...]

 Leave a Reply

(required)

(required)

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">