51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 2539|回复: 0
打印 上一主题 下一主题

[SilkTest] SilkTest系列---高级篇(Silk4J)之单元测试的数据源驱动

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2013-8-13 17:39:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 沅芷湘兰 于 2013-8-14 11:32 编辑

Silk4J系列本身就引入了单元测试的框架,所以在Silk4J中我们可以引入feed4junit来进行单元测试,先读取相关的数据文件,然后将其赋值给脚本。主要实现过程如下:
        feed4junit配置过程
将feed4junit的jar包导入到项目jar包内,再引用Feeder.class,主要的代码片段如下:
import com.borland.silktest.jtf.TextField;
import org.junit.runner.RunWith;

@RunWith(Feeder.class)
public class Silk4JavaXPCalc {
……
}

        从外部导入数据
主要的代码片段如下:
@Source("dataSource\\case1.csv")
注意:
在.csv文件中,当传入的数据中有+,-,*,/等特殊符号时,文件会自动转换,然后导致传入的数据不准确,所以在此处请做好字符的转义工作,如下图所示:


        利用feed4junit将数据导入并进行脚本处理等,主要代码片断如下:
//从文件传入数据并做好数据类型的转换
@Source("dataSource\\case1.csv")
//将读取后的数据通过input1,oper,input2,result参数传入
public void Silk4JavaXPCalc1(String input1,String oper,String input2,double result) {
String operate = oper.replace("'", "");
……
}
由于数据文件对字符进行了转义,所以此处需要将其进行Replace处理。

        将传入的数据对脚本进行赋值,主要代码片断如下:
desktop.<Window>find("/Window[@caption='计算器']").setActive();
desktop.<PushButton>find("/Window[@caption='计算器']//PushButton[@caption='C']").select();
desktop.<PushButton>find("/Window[@caption='计算器']//PushButton[@caption='" + input1 + "']").select();
if (operate.equals("x"))
{
        desktop.<PushButton>find("/Window[@caption='计算器']//PushButton[18]").select();
}
else
{
        desktop.<PushButton>find("/Window[@caption='计算器']//PushButton[@caption='" + operate + "']").select();
}
desktop.<PushButton>find("/Window[@caption='计算器']//PushButton[@caption='" + input2 + "']").select();
其中由于“*”号在SilkTest对象属性识别为“//PushButton[18]”,而不能像其他的“+”,“-”,“/”一样识别为“@caption='" + operate + "'"”,同时由于Java语言并不能将“*”号识别为字符串,所以在此处以“x”来代替并做了判断,如果operate == "x",就会执行不同的操作。

至于feed4junit大家可以参考“单元测试一条龙1.50final”

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-4-28 19:00 , Processed in 0.074169 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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