51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3557|回复: 1
打印 上一主题 下一主题

[原创] 接口测试初探之数据准备

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2010-6-12 20:25:42 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
数据准备是接口测试过程中不可或缺的一步,也是花费时间很长的工作,因为程序的功能就是处理数据。那么在接口测试中,我们要怎样来准备数据呢?经过这几天对接口测试的初探,整理了以下一些关于数据准备的方法。

数据准备分为两种类型:

1、数据库中的基础数据;

2、基于web层的接口测试时,所依赖的session、param等数据;

一、数据库中的基础数据

和ruby脚本中的数据准备类似,接口测试中也使用Excel文件来准备数据库的数据,但是Excel的写法有所不同。

在建好测试类后(下图中的PurchaseProcessServiceTest.java),在同一目录下新建一个同名的Excel文件,如图:


打开新建的Excel,将下方的sheet名改成你要插入数据的数据库表名,如下图中的table_user表:


在Excel中填写要插入的数据,如下图:


第一行是表中的字段,第二行开始就是要插入的数据。

这里有个小技巧,可以先从PL/SQL中查询到相关的数据,然后把它导出成一个CSV文件,用Excel打开这个CSV文件,就可以直接把数据复制粘贴到Excel中了:



Excel写好后,要把它加到测试类中,这里使用标签来实现,在用例测试代码上面加如下标签:

@DataSet({“PurchaseProcessServiceTest.xls”})
@Test
public void test_N_测试用例_case01() {……..}

这样每次测试执行时,会先根据Excel中的数据,查找数据库,如果Excel中的数据在数据库中已存在,系统就会自动先将它们从数据库中删除,然后把Excel中的数据全部插入数据库。

不过这样准备的数据是静态的,如果你想要准备动态的数据,如:你需要插入的数据中有个时间字段,这个字段的值是当前的系统时间。这样你就需要先用Excel插入一条数据,然后在测试代码中,用jdbc来update这条数据,把数据中的时间改成你想要的时间,就可以了。

二、基于web层的接口测试

因为是针对web层的测试,所以需要在测试执行前,对接口所依赖的session、param等进行注入。

在itest中,我们用xml文件来实现这一步。

和上面一样,要在测试类的同一目录下,新建一个同名的xml文件,结构如下:

<tests url=”" module=”这里写要测试的接口名,类名” action=”要测试的方法名,类中的方法”>
     <test name=”用例名,要和测试类中的用例名一致”>
          <session name=”session参数名” desc=”描述” value=”参数值”/>

          <param name=”param参数名” desc=”描述” value=”参数值”/>
     </test>
</tests>

这样每次执行测试时,就会自动注入这些requst参数了。

三、其他

当然上面的两种数据准备方法都是需要配置的,至于怎么配置,敬请期待接口测试初探之配置篇

参考资料:http://itest.taobao.net:8088/site/tutorial.html

原文地址:http://qa.taobao.com/?p=6879
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2010-6-13 11:38:07 | 只看该作者
不错的一个实例,要是LZ能贴上图就更好了::jian:::
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-16 20:56 , Processed in 0.070887 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表