• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

软件测试中通用数据生成方法

发布: 2009-7-15 17:58 | 作者: 网络转载 | 来源: 领测软件测试网 | 查看: 133次 | 进入软件测试论坛讨论

领测软件测试网

  第三步:循环输出数据

  /* 循环输出数据。 */

  for($i = 0; $i < $dataCount; $i ++)

  {

  foreach($fields as $fieldName => $field)

  {

  $pointer = $field['pointer'];

  /* 如果指针已经到到了列表的尾部,重新指向列表开始。 */

  if($pointer == count($field['list'])) $pointer = 0;

  echo $field['prefix']; // 输出前缀。

  echo $field['list'][$pointer]; // 输出当前指针所对应的列表中的取值。

  echo $field['postfix']; // 输出后缀。

  $pointer ++;

  $fields[$fieldName]['pointer'] = $pointer;

  }

  echo "\n";

  }

  这样我们用了不到 50 行的代码就完成了一个基本的数据生成工具。这其实已经可以满足基本的数据生成任务了。但是还需要进一步进行完善。

需要进一步完善的地方

  第一:数据的扩展性

  虽然 list 类型已经足够灵活,但有时候还无法满足需要。比如一个比较复杂的字段,由若干小字段组成。这时可以将这个复合字段再通过一个 ini 文件来定义,这样就有了无限可能。

  比如,我们在 example.ini 文件中增加一个日期的字段,格式为 yyyy 年 mm 月 dd 日的格式

  清单三:example.ini 中新增一个字段

  [field5]

  prefix=""

  datatype="custom" " 定义这个字段的数据类型为 custom

  datacfg="custom.ini" " 定义这个字段的配置文件为 custom.ini

  postfix=""

  清单四:custom.ini

  [field5.1]

  prefix=""

  datatype="list, range=[1980-1999]"

  postfix=" 年 "

  [field5.2]

  prefix=""

  datatype="list, range=[1-12]"

  postfix=" 月 "

  [field5.3]

  prefix=""

  datatype="list, range=[1-31]"

  postfix=" 日 "

  这可以通过 php 中的递归函数来实现这个解析。即当解析到一个字段发现是自定义类型的时候,就读取这个字段所对应的 ini 配置文件,然后再解析它的每一个字段。具体的代码就不给出了,读者朋友们可以尝试实现。

  第二:列表可以更加灵活

  列表 range 参数还可以更加灵活,比如:

  1. 可以指定步长:range=[1-100:2],表示从 1 到 100,步长为 2 递增。

  2. 可以指定输出的格式:range=[1-100:2]&format=0.2f,这个地方的 format 可以是 sprintf 函数的格式标签。

  3. 可以指定是否随机。现在生成的数据是按照列表中的顺序来生成的。可以通过一个 rand 参数来指定是否随机。

  第三:不同的输出格式

  我们现在输出的是行与列的格式,其实我们还可以定义其他不同的输出格式。比如输出为数据库的 insert sql 语句。输出为 xml 格式的数据。这些实现起来都不是特别的麻烦,代码中做些处理就可以了。

  结束语

  PHP 是一款非常优秀的脚本语言(虽然它主要用在 web 开发上)。使用 PHP 可以快速地写出很多小工具来帮助我们来完成某个任务。本文只是给出了一个数据生成方法的简单实现,各位读者朋友完全可以发挥自己的想象,开发出更加灵活、好用的工具来。具体到我们公司的应用,我们现在基本上可以使用这个工具来生成各种各样不同的测试数据。而且有了这些固定的测试数据,就可以实现自动化测试

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

33/3<123

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网