JavaGUI练习 - 正交测试用例生成小工具
2020-05-31 16:05:15来源:博客园 阅读 ()
JavaGUI练习 - 正交测试用例生成小工具
正交表生成小工具
说明
小工具的适用对象主要是测试人员,他们日常工作中手动设计大量测试用例,工作繁杂甚至还存在覆盖不全面等问题。
为了提高他们的测试效率,该小工具可以通过输入一组多因素多水平的数据,然后查询到相应的正交表,同时映射出这组数据的测试用例。
为了方便使用,还增加了帮助、导入文件和保存结果的功能。
思路
-
同样需要构思布局,先分为上中下三大块
-
其次对每一块进行细化,上方是用户的操作区域
-
中间和下方显示数据
-
逐个实现按钮监听的事件类
-
完善一些异常处理,进行软件测试
-
打包上交
注意事项
- 使用合适的布局格式
- 获取/修改界面的数据
- 数据文件的路径应使用相对路径!
- 事件监听使用内部类可以非常方便的操作界面数据。
使用效果
- 首先点击
帮助
按钮,查看使用说明 复制
例子的内容,粘贴
到小工具的输入框- 点击
生成
按钮生成正交表和映射表。
成功映射3^4的正交表
- 点击
选择文件
按钮 - 找到符合输入规范的
文本文件
,点击打开 - 会自动将文本文件的内容填充到输入框
- 点击
生成
按钮生成正交表和映射表。
成功映射2^3的正交表
遇到的问题
- 小工具打成jar包之后,数据文件路径失效
// 通过类名的相对路径获取数据文件,Table.txt与MyGenerator类在同一个包下
URL table = MyGenerator.class.getResource("Table.txt");
File file = new File(table.toURI());
InputStreamReader input = new InputStreamReader(new FileInputStream(file));
BufferedReader bf = new BufferedReader(input);
// 处理数据
修改成输入流即可解决
// 包中使用的方式
InputStream in = MyGenerator.class.getResourceAsStream("Table.txt");
InputStreamReader input = new InputStreamReader(in);
BufferedReader bf = new BufferedReader(input);
- 不能生成混合正交表,处理混合因素时出了点问题
-
解决思路:
- 首先将输入框的数据拆分成行,得到的行数就是因子数
- 每一行数据冒号前面是条件名称,冒号后面是水平名称列表
- 对每一行的水平列表进行统计,将每行的水平数存入一个数组counts中
- 对counts数组中每个数字出现的次数进行统计,将结果拼接成字符串数组
-
举例输入
服务器:Tomcat Apache 操作系统:win10 Linux 插件:小程序 微信插件 浏览器:Chrome Firefox VPN:proxy6 Sockshub Luminati NewIPNow
将输入数据按行拆分得到5行数据,即结果由5个条件决定,因子数为5。
每一行冒号前的数据存到head数组,冒号之后的数据按空格的拆分。得到二维字符串数组
{ {"Tomcat", "Apache"}, {win10", "Linux"}, {小程序", "微信插件"}, {Chrome", "Firefox"}, {"proxy6", "Sockshub", "Luminati", "NewIPNow"} }
对每一行统计的结果存入输入counts
{2, 2, 2, 2, 4}
再对counts数组进行统计,将结果拼接成字符串数组
{"2^4", "4^1"}//表示2水平的因子有4个,4水平的因子有1个 服务器:Tomcat Apache //0 1 操作系统:win10 Linux //0 1 插件:小程序 微信插件 //0 1 浏览器:Chrome Firefox //0 1 VPN:proxy6 Sockshub Luminati NewIPNow //0 1 2 3
查表的时候,要同时包含以上数组的每一段字符串。
数据文件
2^3 n=4 000 011 101 110 2^4 4^1 n=8 00000 00112 01011 01103 10013 10101 11002 11110 3^4 n=9 0000 0121 0212 1022 1110 1201 2011 2102 2220
锁定到
2^4 4^1 n=8
这一行拆分等号后面的数值,往后读取n行得到正交表最后映射正交表就完成核心功能。
-
保存为Excel文件
- 参见POI操作
总结
解决完混合正交表之后,发现Java语言的可扩展性真的强,通过重载方法扩展查表方式,使用不同参数得到不同结果。
最后发现自己对Java常用API还不够熟悉,很多高级的数据结构都没用到。
不过相比于以前的面向百度编程, 如今已经可以通过有限的知识得到可行的解决方案。
还有为了导出Excel文件,项目升级为maven模式,引入大量依赖,打包时META-INF文件
一定要与src同级
接下来学习常用API和Java高级应用。
原文链接:https://www.cnblogs.com/1101-/p/13019281.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:Java桌面应用程序打包
- 第六章第三十七题(格式化整数)(Format an integer) - 编程 2020-05-26
- 第六章第三十四题(打印日历)(Print calendar) - 编程练习 2020-05-23
- java练习 简单DFS POJ-1979 Red and Black 2020-04-22
- java Map练习 2020-04-08
- 【视频+图文】Java经典基础练习题(三):输入3个整数,并将 2020-03-28
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash