利用ant sql task 作canoo web test 的数据初始化
每次运行之前需要在数据库里populate需要的测试数据,这个可以用SQL ant task自动在test case里实现--相关test case第一步就是作数据初始化。
步骤:
(1) 建议先写好SQL script,把这些sql文件放在单独的SQL目录里。(optional)
(2) 把 mysql jdbc driver 文件 “mysql-connector-java-5.0.4-bin.jar”拷贝到 webtest的lib目录下,并且加入到java classpath (或者 webtest.sh /webtest.bat 的calsspath里)
哪里找文件 mysql-connector-java-5.0.4-bin.jar呢?
--先从这里下载mysql-connector-java-5.0.4.zip : http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.0.4.zip/from/http://mirror.services.wisc.edu/mysql/ ,解压后你会看到mysql-connector-java-5.0.4-bin.jar.
(3)写SQL task:
一个简单的SQL ant task是这样的:
<sql
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://host:port/database"
userid="sa"
password="pass"
src="data.sql"
/>
意思是链接到位于 host:port的mysql数据库里的"database" schema, 用sa/pass登陆,然后运行 "data.sql"文件。
或者这样直接写sql语句:
<sql
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://host:port/database"
userid="sa"
password="pass"
><![CDATA[
update some_table set column1 = column1 + 1 where column2 < 42;
]]></sql>
或者这样运行几个sql文件:
<sql
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://host:port/database"
userid="sa"
password="pass" >
<transaction src="data1.sql"/>
<transaction src="data2.sql"/>
<transaction src="data3.sql"/>
<transaction>
truncate table some_other_table;
</transaction>
</sql>
(4) 在你的webtest里把这个task加进来 :
<target name="testit">
<!–初始化数据 -->
<sql
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://host:port/database"
userid="sa"
password="pass" >
<transaction src="data1.sql"/>
<transaction src="data2.sql"/>
<transaction src="data3.sql"/>
<transaction>
truncate table some_other_table;
</transaction>
</sql>
<webtest name="myTest">
<config host="localhost" port="8080" protocol="http" basepath="" summary="true" saveresponse="true" />
<steps>
<invoke description="a" url="sb.php" />
<!–<verifyCookie name="AuthJ" text="[email protected]~wangluo~1161665636" /> –>
<!–<invoke description="a" url="sb.php?a=1" /> –>
</steps>
</webtest>
</target>
上面只是简单例子,你们做时这个<sql>部分可以放到一个include文件里, 在test case里 include进来。