完成数据列表类相关测试用例,并添加相应的单元测试,修改相应的xml文件格式

This commit is contained in:
彭宇琦 2020-03-26 20:26:59 +08:00
parent 88857947a3
commit f54fdad7fe
18 changed files with 631 additions and 152 deletions

View File

@ -1,11 +1,17 @@
<?xml version='1.0' encoding='UTF-8'?>
<cases project='BrowseList'>
<case name='addAppBrowseListCase'>
<title value='浏览*{信息}*列表' />
<keyword value='*{信息}*列表,刷新,加载' />
<rank value='1' />
<titles>
<title id='1' value='浏览*{信息}*列表' />
</titles>
<keys>
<key id='1' value='*{信息}*列表,刷新,加载' />
</keys>
<ranks>
<rank id='1' value='1' />
</ranks>
<preconditions>
<precondition value='列表中有信息存在' />
<precondition id='1' value='列表中有信息存在' />
</preconditions>
<steps>
<step id='1' value='查看*{信息}*列表' />
@ -14,21 +20,27 @@
<step id='4' value='在无剩余数据时,上拉加载列表' />
<step id='5' value='加载或刷新列表时点击某一个信息或某一个按钮' />
</steps>
<expectations>
<expectation id='1' value='能看到当前存在的所有信息,且信息按一定规则排序'/>
<expectation id='2' value='列表被刷新,若有新增信息则被显示出来,且原有数据排序不会混乱'/>
<expectation id='3' value='能加载剩下的信息'/>
<expectation id='4' value='上拉有效,但不加载出数据或数据不会错乱'/>
<expectation id='5' value='app不会闪退且能正常显示'/>
</expectations>
<excepts>
<except id='1' value='能看到当前存在的所有信息,且信息按一定规则排序'/>
<except id='2' value='列表被刷新,若有新增信息则被显示出来,且原有数据排序不会混乱'/>
<except id='3' value='能加载剩下的信息'/>
<except id='4' value='上拉有效,但不加载出数据或数据不会错乱'/>
<except id='5' value='app不会闪退且能正常显示'/>
</excepts>
</case>
<case name='addWebBrowseListCase'>
<title value='浏览*{信息}*列表' />
<keyword value='*{信息}*列表,刷新,加载' />
<rank value='1' />
<titles>
<title id='1' value='浏览*{信息}*列表' />
</titles>
<keys>
<key id='1' value='*{信息}*列表,刷新,加载' />
</keys>
<ranks>
<rank id='1' value='1' />
</ranks>
<preconditions>
<precondition value='列表中有信息存在' />
<precondition id='1' value='列表中有信息存在' />
</preconditions>
<steps>
<step id='1' value='查看*{信息}*列表' />
@ -38,66 +50,86 @@
<step id='5' value='在尾页上点击“尾页”按钮' />
<step id='6' value='在尾页上点击“下一页”按钮' />
</steps>
<expectations>
<expectation id='1' value='能看到当前存在的所有信息,且信息按一定规则排序'/>
<expectation id='2' value='能看到不同页上的列表信息,且切换页后列表的排序不变'/>
<expectation id='3' value='按钮无法点击或点击无效,且当前页列表排序不变'/>
<expectation id='4' value='按钮无法点击或点击无效,且当前页列表排序不变'/>
<expectation id='5' value='按钮无法点击或点击无效,且当前页列表排序不变'/>
<expectation id='6' value='按钮无法点击或点击无效,且当前页列表排序不变'/>
</expectations>
<excepts>
<except id='1' value='能看到当前存在的所有信息,且信息按一定规则排序'/>
<except id='2' value='能看到不同页上的列表信息,且切换页后列表的排序不变'/>
<except id='3' value='按钮无法点击或点击无效,且当前页列表排序不变'/>
<except id='4' value='按钮无法点击或点击无效,且当前页列表排序不变'/>
<except id='5' value='按钮无法点击或点击无效,且当前页列表排序不变'/>
<except id='6' value='按钮无法点击或点击无效,且当前页列表排序不变'/>
</excepts>
</case>
<case name='addInputSearchCase'>
<title value='通过*{搜索条件}*对*{信息}*进行搜索' />
<keyword value='*{信息}*列表,搜索' />
<rank value='1' />
<titles>
<title id='1' value='通过*{搜索条件}*对*{信息}*进行搜索' />
</titles>
<keys>
<key id='1' value='*{信息}*列表,搜索' />
</keys>
<ranks>
<rank id='1' value='1' />
</ranks>
<preconditions>
<precondition value='列表中有信息存在' />
<precondition id='1' value='列表中有信息存在' />
</preconditions>
<steps>
<step id='1' value='通过*{搜索条件}*对*{信息}*进行模糊搜索' />
<step id='2' value='通过*{搜索条件}*对*{信息}*进行精准搜索' />
<step id='3' value='不输入信息进行搜索' />
<step id='4' value='输入*{信息}*中都不包含的关键词进行搜索' />
<step id='5' value='输入“*”符号等特殊字符进行搜索' />
</steps>
<expectations>
<expectation id='1' value='能搜索出包含输入内容的结果'/>
<expectation id='2' value='能搜索出与输入相对应的结果'/>
<expectation id='3' value='能查看到所有的结果'/>
<expectation id='4' value='无搜索结果'/>
</expectations>
<excepts>
<except id='1' value='能搜索出包含输入内容的结果'/>
<except id='2' value='能搜索出与输入相对应的结果'/>
<except id='3' value='能查看到所有的结果'/>
<except id='4' value='无搜索结果'/>
<except id='5' value='只能搜索出包含特殊字符的结果'/>
</excepts>
</case>
<case name='addSelectSearchCase'>
<title value='通过*{搜索条件}*对*{信息}*进行搜索' />
<keyword value='*{信息}*列表,搜索' />
<rank value='1' />
<titles>
<title id='1' value='通过*{搜索条件}*对*{信息}*进行搜索' />
</titles>
<keys>
<key id='1' value='*{信息}*列表,搜索' />
</keys>
<ranks>
<rank id='1' value='1' />
</ranks>
<preconditions>
<precondition value='列表中有信息存在' />
<precondition id='1' value='列表中有信息存在' />
</preconditions>
<steps>
<step id='1' value='选择*{搜索条件}*的第一个选项对*{信息}*进行搜索' />
<step id='1' value='选择*{搜索条件}*的第一个有效选项对*{信息}*进行搜索' />
<step id='2' value='选择*{搜索条件}*非第一个选项和非最后一个选项对*{信息}*进行搜索' />
<step id='3' value='选择*{搜索条件}*的最后一个选项对*{信息}*进行搜索' />
<step id='4' value='不选择任何选项进行搜索' />
<step id='5' value='选择所有*{信息}*中都不包含的选项进行搜索' />
</steps>
<expectations>
<expectation id='1' value='能搜索出符合选项的结果'/>
<expectation id='2' value='能搜索出符合选项的结果'/>
<expectation id='3' value='能搜索出符合选项的结果'/>
<expectation id='4' value='能查看到所有的结果'/>
<expectation id='5' value='无搜索结果'/>
</expectations>
<excepts>
<except id='1' value='能搜索出符合选项的结果'/>
<except id='2' value='*{下级选项}*内容置空,其中的选项随之改变,且能搜索出所有符合*{搜索条件}*选中的选项结果,以及符合*{下级选项}*所有选项的结果'/>
<except id='3' value='*{下级选项}*内容置空,其中的选项也置空,且能搜索出符合*{搜索条件}*所有选项的结果'/>
<except id='4' value='能查看到所有的结果,或者默认选项相应的结果'/>
<except id='5' value='无搜索结果'/>
</excepts>
</case>
<case name='addDateSearchCase'>
<title value='通过*{搜索条件}*对*{信息}*进行搜索' />
<keyword value='*{信息}*列表,搜索' />
<rank value='1' />
<titles>
<title id='1' value='通过*{搜索条件}*对*{信息}*进行搜索' />
</titles>
<keys>
<key id='1' value='*{信息}*列表,搜索' />
</keys>
<ranks>
<rank id='1' value='1' />
</ranks>
<preconditions>
<precondition value='列表中有信息存在' />
<precondition id='1' value='列表中有信息存在' />
</preconditions>
<steps>
<step id='1' value='选择一个列表中存在的*{搜索条件}*数据进行搜索' />
@ -110,42 +142,54 @@
<step id='8' value='选择一个在*{开始时间}*至*{结束时间}*不存在数据的时间段进行搜索' />
<step id='9' value='不选择*{开始时间}*与*{结束时间}*进行搜索' />
</steps>
<expectations>
<expectation id='1' value='能搜索出在该*{搜索条件}*内所有的结果'/>
<expectation id='2' value='搜索无结果'/>
<expectation id='3' value='能搜索出所有的结果'/>
<expectation id='4' value='无搜索结果或弹出错误输入的提示'/>
<expectation id='5' value='能搜索出从有数据以来至*{结束时间}*的所有结果'/>
<expectation id='6' value='能搜索出从*{开始时间}*至今的所有结果'/>
<expectation id='7' value='能搜索出从*{开始时间}*至*{结束时间}*的所有结果且时间边界上的数据也能展示'/>
</expectations>
<excepts>
<except id='1' value='能搜索出在该*{搜索条件}*内所有的结果'/>
<except id='2' value='搜索无结果'/>
<except id='3' value='能搜索出所有的结果'/>
<except id='4' value='无搜索结果或弹出错误输入的提示'/>
<except id='5' value='能搜索出从有数据以来至*{结束时间}*的所有结果'/>
<except id='6' value='能搜索出从*{开始时间}*至今的所有结果'/>
<except id='7' value='能搜索出从*{开始时间}*至*{结束时间}*的所有结果且时间边界上的数据也能展示'/>
</excepts>
</case>
<case name='addListSortCase'>
<title value='对*{信息}*列表按照*{搜索条件}*进行排序' />
<keyword value='*{信息}*列表,排序' />
<rank value='1' />
<titles>
<title id='1' value='对*{信息}*列表按照*{搜索条件}*进行排序' />
</titles>
<keys>
<key id='1' value='*{信息}*列表,排序' />
</keys>
<ranks>
<rank id='1' value='1' />
</ranks>
<preconditions>
<precondition value='列表中有信息存在' />
<precondition id='1' value='列表中有信息存在' />
</preconditions>
<steps>
<step id='1' value='点击列表中的*{搜索条件}*列' />
<step id='2' value='再次点击列表中的*{搜索条件}*列' />
<step id='3' value='当*{搜索条件}*列为空时,对该列排序' />
</steps>
<expectations>
<expectation id='1' value='列表中的数据按照所选的项目进行某种规律的排序'/>
<expectation id='2' value='列表中的数据按照第一步相反的顺序排序'/>
<expectation id='3' value='列表中的数据排序不变'/>
</expectations>
<excepts>
<except id='1' value='列表中的数据按照所选的项目进行某种规律的排序'/>
<except id='2' value='列表中的数据按照第一步相反的顺序排序'/>
<except id='3' value='列表中的数据排序不变'/>
</excepts>
</case>
<case name='addExportListCase'>
<title value='导出*{信息}*列表的数据' />
<keyword value='*{信息}*列表,导出' />
<rank value='1' />
<titles>
<title id='1' value='导出*{信息}*列表的数据' />
</titles>
<keys>
<key id='1' value='*{信息}*列表,导出' />
</keys>
<ranks>
<rank id='1' value='1' />
</ranks>
<preconditions>
<precondition value='列表中有信息存在' />
<precondition id='1' value='列表中有信息存在' />
</preconditions>
<steps>
<step id='1' value='在列表上有数据的情况下点击“*{导出按钮}*”按钮' />
@ -155,18 +199,24 @@
<step id='5' value='在列表上无数据的情况下点击“*{导出按钮}*”按钮' />
<step id='6' value='对列表搜索后点击“*{导出按钮}*”按钮' />
</steps>
<expectations>
<expectation id='1' value='能导出文件,且文件上显示的信息与列表上所有的信息保持一致'/>
<expectation id='2' value='能导出文件,导出的文件中只有勾选的*{信息}*数据且文件上显示的信息与列表上的信息保持一致'/>
<expectation id='4' value='导出的文件中有所有的*{信息}*信息且文件上显示的信息与列表上的信息保持一致'/>
<expectation id='5' value='若能导出相应的文件,则文件中只有表格的表头,无其他数据;若不能导出,则给出相应的提示'/>
</expectations>
<excepts>
<except id='1' value='能导出文件,且文件上显示的信息与列表上所有的信息保持一致'/>
<except id='2' value='能导出文件,导出的文件中只有勾选的*{信息}*数据且文件上显示的信息与列表上的信息保持一致'/>
<except id='4' value='导出的文件中有所有的*{信息}*信息且文件上显示的信息与列表上的信息保持一致'/>
<except id='5' value='若能导出相应的文件,则文件中只有表格的表头,无其他数据;若不能导出,则给出相应的提示'/>
</excepts>
</case>
<case name='addImportListCase'>
<title value='导入*{信息}*列表的数据' />
<keyword value='*{信息}*列表,导入' />
<rank value='1' />
<titles>
<title id='1' value='导入*{信息}*列表的数据' />
</titles>
<keys>
<key id='1' value='*{信息}*列表,导入' />
</keys>
<ranks>
<rank id='1' value='1' />
</ranks>
<preconditions>
</preconditions>
<steps>
@ -174,34 +224,46 @@
<step id='2' value='在模版中部分必填信息不输入或信息错误输入,导入' />
<step id='3' value='导入非模版文件' />
</steps>
<expectations>
<expectation id='1' value='信息导入成功,能在列表上看到新导入的帐号信息'/>
<expectation id='2' value='信息导入失败,并给出相应的提示'/>
<expectation id='3' value='信息导入失败,并给出相应的提示'/>
</expectations>
<excepts>
<except id='1' value='信息导入成功,能在列表上看到新导入的帐号信息'/>
<except id='2' value='信息导入失败,并给出相应的提示'/>
<except id='3' value='信息导入失败,并给出相应的提示'/>
</excepts>
</case>
<case name='addResetSearchCase'>
<title value='重置搜索' />
<keyword value='重置,搜索' />
<rank value='1' />
<titles>
<title id='1' value='重置搜索' />
</titles>
<keys>
<key id='1' value='重置,搜索' />
</keys>
<ranks>
<rank id='1' value='1' />
</ranks>
<preconditions>
<precondition value='已对列表进行搜索' />
<precondition id='1' value='已对列表进行搜索' />
</preconditions>
<steps>
<step id='1' value='先对列表进行一次搜索,之后点击重置按钮' />
</steps>
<expectations>
<expectation id='1' value='所有的搜索条件回到初次进入界面的状态,且列表中的数据也被还原'/>
</expectations>
<excepts>
<except id='1' value='所有的搜索条件回到初次进入界面的状态,且列表中的数据也被还原'/>
</excepts>
</case>
<case name='addSwitchListShowDataCase'>
<title value='修改列表每页显示的数据量' />
<keyword value='切换,数据量' />
<rank value='1' />
<titles>
<title id='1' value='修改列表每页显示的数据量' />
</titles>
<keys>
<key id='1' value='切换,数据量' />
</keys>
<ranks>
<rank id='1' value='1' />
</ranks>
<preconditions>
<precondition value='列表中有多条数据存在,且能分页显示' />
<precondition id='1' value='列表中有多条数据存在,且能分页显示' />
</preconditions>
<steps>
<step id='1' value='选择分页下拉框的第一个选项' />
@ -210,12 +272,44 @@
<step id='4' value='在数据量较少的情况下选择一个较大的单页显示量如只有5条数据时选择单页显示20条数据' />
<step id='5' value='在列表无数据的情况下切换单页数据显示量' />
</steps>
<expectations>
<expectation id='1' value='列表中每页显示相应的数据量,且修改后不改变原数据的顺序'/>
<expectation id='2' value='列表中每页显示相应的数据量,且修改后不改变原数据的顺序'/>
<expectation id='3' value='列表中每页显示相应的数据量,且修改后不改变原数据的顺序'/>
<expectation id='4' value='列表中数据无变化,且顺序保持不变'/>
<expectation id='5' value='列表无任何变化'/>
</expectations>
<excepts>
<except id='1' value='列表中每页显示相应的数据量,且修改后不改变原数据的顺序'/>
<except id='2' value='列表中每页显示相应的数据量,且修改后不改变原数据的顺序'/>
<except id='3' value='列表中每页显示相应的数据量,且修改后不改变原数据的顺序'/>
<except id='4' value='列表中数据无变化,且顺序保持不变'/>
<except id='5' value='列表无任何变化'/>
</excepts>
</case>
<case name='delectDataCase'>
<titles>
<title id='1' value='删除*{信息}*列表的数据' />
</titles>
<keys>
<key id='1' value='*{信息}*列表,删除' />
</keys>
<ranks>
<rank id='1' value='1' />
</ranks>
<preconditions>
<precondition id='1' value='列表中有信息存在' />
</preconditions>
<steps>
<step id='1' value='不选择数据,点击“*{删除按钮}*”按钮' />
<step id='2' value='选择第一条数据,点击“*{删除按钮}*”按钮' />
<step id='3' value='选择最后一条数据,点击“*{删除按钮}*”按钮' />
<step id='4' value='选择多条数据,点击“*{删除按钮}*”按钮' />
<step id='5' value='选择一页数据,点击“*{删除按钮}*”按钮' />
<step id='6' value='在只有一页数据的情况下,全选,点击“*{删除按钮}*”按钮' />
<step id='7' value='列表搜索后勾选部分数据,点击“*{删除按钮}*”按钮' />
<step id='8' value='列表搜索后数据全选,点击“*{删除按钮}*”按钮' />
</steps>
<excepts>
<except id='1' value='无法删除数据,并给出相应选择数据的提示'/>
<except id='2' value='数据被删除,列表不再显示被删除的数据,其后的数据顶替被删除的数据的位置,且数据列表排序不变,数据总条数减少'/>
<except id='3' value='一页数据数据被删除,其下一页的数据将顶替该页数据,其列表的页数与总条数相应减少'/>
<except id='4' value='数据被全部删除列表显示为空其数据总条数变为0'/>
<except id='5' value='当前搜索条件下的数据被全部删除,列表显示为空,但重置搜索后能看到非搜索内容的选项'/>
</excepts>
</case>
</cases>

View File

@ -1,4 +1,4 @@
package pres.auxiliary.work.n.tcase;
package pres.auxiliary.work.n.testcase;
import java.io.File;
import java.util.ArrayList;
@ -275,10 +275,10 @@ public abstract class Case {
}
//添加预期
if (ids[0].equals(ALL)) {
if (ids[1].equals(ALL)) {
addFieldText(LabelType.EXCEPT, getAllLabelText(caseName, LabelType.EXCEPT));
} else {
addFieldText(LabelType.EXCEPT, getLabelText(caseName, LabelType.EXCEPT, ids[0]));
addFieldText(LabelType.EXCEPT, getLabelText(caseName, LabelType.EXCEPT, ids[1]));
}
}
}

View File

@ -1,4 +1,4 @@
package pres.auxiliary.work.n.tcase;
package pres.auxiliary.work.n.testcase;
/**
* <p><b>文件名</b>CaseContentException.java</p>

View File

@ -1,6 +1,7 @@
package pres.auxiliary.work.n.tcase;
package pres.auxiliary.work.n.testcase;
import java.io.File;
import java.io.IOException;
/**
* <p><b>文件名</b>DataListCase.java</p>
@ -100,9 +101,6 @@ public class DataListCase extends Case {
//添加步骤与预期
relevanceAddData(caseName, ALL, ALL);
//存储预期信息
addFieldText(LabelType.EXCEPT, getAllLabelText(caseName, LabelType.EXCEPT));
//存储前置条件信息
addFieldText(LabelType.PRECONDITION, getAllLabelText(caseName, LabelType.PRECONDITION));
@ -123,7 +121,7 @@ public class DataListCase extends Case {
//清空字段的内容
clearFieldText();
// 存储case标签的name属性内容
String caseName = "addInputSearchCase";
String caseName = "addSelectSearchCase";
//添加替换词语
wordMap.put(WordType.SEARCH_CONDITION.getName(), condition);
@ -132,7 +130,60 @@ public class DataListCase extends Case {
addFieldText(LabelType.TITLE, getLabelText(caseName, LabelType.TITLE, "1"));
//添加步骤与预期
relevanceAddData(caseName, ALL, ALL);
//选择第一个选项
relevanceAddData(caseName, "1", "1");
//选择中间选项
relevanceAddData(caseName, "2", "1");
//选择最后选项
relevanceAddData(caseName, "3", "1");
//不选择
relevanceAddData(caseName, "4", "4");
//选择都不包含
relevanceAddData(caseName, "5", "5");
//存储前置条件信息
addFieldText(LabelType.PRECONDITION, getAllLabelText(caseName, LabelType.PRECONDITION));
//存储关键词信息
addFieldText(LabelType.KEY, getLabelText(caseName, LabelType.KEY, "1"));
//存储优先级信息
addFieldText(LabelType.RANK, getLabelText(caseName, LabelType.RANK, "1"));
return this;
}
/**
* 用于添加联动选择条件对列表进行搜索的测试用例当存在联动选项时可使用该方法生成用例
* 若搜索条件为最下级时相当于普通下拉选择框可以考虑调用{@link #selectSearchCase(String)}方法
* @param condition 搜索条件控件名称
* @param downCondition 下级搜索条件控件名称
* @return 类本身
*/
public Case selectSearchCase(String condition, String downCondition) {
//清空字段的内容
clearFieldText();
// 存储case标签的name属性内容
String caseName = "addSelectSearchCase";
//添加替换词语
wordMap.put(WordType.SEARCH_CONDITION.getName(), condition);
//添加替换词语
wordMap.put(WordType.DONW_CONDITION.getName(), downCondition);
//存储标题信息
addFieldText(LabelType.TITLE, getLabelText(caseName, LabelType.TITLE, "1"));
//添加步骤与预期
//选择第一个选项
relevanceAddData(caseName, "1", "2");
//选择中间选项
relevanceAddData(caseName, "2", "2");
//选择最后选项
relevanceAddData(caseName, "3", "2");
//不选择
relevanceAddData(caseName, "4", "3");
//选择都不包含
relevanceAddData(caseName, "5", "5");
//存储前置条件信息
addFieldText(LabelType.PRECONDITION, getAllLabelText(caseName, LabelType.PRECONDITION));
@ -239,6 +290,9 @@ public class DataListCase extends Case {
// 存储case标签的name属性内容
String caseName = "addListSortCase";
//添加替换词语
wordMap.put(WordType.SEARCH_CONDITION.getName(), condition);
//存储标题信息
addFieldText(LabelType.TITLE, getLabelText(caseName, LabelType.TITLE, "1"));
@ -268,7 +322,10 @@ public class DataListCase extends Case {
//清空字段的内容
clearFieldText();
// 存储case标签的name属性内容
String caseName = "addListSortCase";
String caseName = "addExportListCase";
//添加替换词语
wordMap.put(WordType.EXPORT_BUTTON_NAME.getName(), exportButton);
//存储标题信息
addFieldText(LabelType.TITLE, getLabelText(caseName, LabelType.TITLE, "1"));
@ -298,6 +355,141 @@ public class DataListCase extends Case {
return this;
}
/**
* 用于添加导入信息的测试用例
* @return 类本身
*/
public Case importListCase() {
//清空字段的内容
clearFieldText();
// 存储case标签的name属性内容
String caseName = "addImportListCase";
//存储标题信息
addFieldText(LabelType.TITLE, getLabelText(caseName, LabelType.TITLE, "1"));
//----------------------------------------
//添加步骤与预期
relevanceAddData(caseName, ALL, ALL);
//----------------------------------------
//存储前置条件信息
addFieldText(LabelType.PRECONDITION, getAllLabelText(caseName, LabelType.PRECONDITION));
//存储关键词信息
addFieldText(LabelType.KEY, getLabelText(caseName, LabelType.KEY, "1"));
//存储优先级信息
addFieldText(LabelType.RANK, getLabelText(caseName, LabelType.RANK, "1"));
return this;
}
/**
* 用于生成重置搜索功能的测试用例
* @return 类本身
*/
public Case resetSearchCase() {
//清空字段的内容
clearFieldText();
// 存储case标签的name属性内容
String caseName = "addResetSearchCase";
//存储标题信息
addFieldText(LabelType.TITLE, getLabelText(caseName, LabelType.TITLE, "1"));
//----------------------------------------
//添加步骤与预期
relevanceAddData(caseName, ALL, ALL);
//----------------------------------------
//存储前置条件信息
addFieldText(LabelType.PRECONDITION, getAllLabelText(caseName, LabelType.PRECONDITION));
//存储关键词信息
addFieldText(LabelType.KEY, getLabelText(caseName, LabelType.KEY, "1"));
//存储优先级信息
addFieldText(LabelType.RANK, getLabelText(caseName, LabelType.RANK, "1"));
return this;
}
/**
* 该方法用于生成切换列表单页数据显示量的用例
* @return
* @throws IOException
*/
public Case switchListShowDataCase() {
//清空字段的内容
clearFieldText();
// 存储case标签的name属性内容
String caseName = "addSwitchListShowDataCase";
//存储标题信息
addFieldText(LabelType.TITLE, getLabelText(caseName, LabelType.TITLE, "1"));
//----------------------------------------
//添加步骤与预期
relevanceAddData(caseName, ALL, ALL);
//----------------------------------------
//存储前置条件信息
addFieldText(LabelType.PRECONDITION, getAllLabelText(caseName, LabelType.PRECONDITION));
//存储关键词信息
addFieldText(LabelType.KEY, getLabelText(caseName, LabelType.KEY, "1"));
//存储优先级信息
addFieldText(LabelType.RANK, getLabelText(caseName, LabelType.RANK, "1"));
return this;
}
/**
* 用于生成删除列表数据相关的测试用例
* @param delectButton 删除按钮名称
* @return 类本身
*/
public Case delectDataCase(String delectButton) {
//清空字段的内容
clearFieldText();
// 存储case标签的name属性内容
String caseName = "delectDataCase";
//添加替换词语
wordMap.put(WordType.DELECT_BUTTON.getName(), delectButton);
//存储标题信息
addFieldText(LabelType.TITLE, getLabelText(caseName, LabelType.TITLE, "1"));
//----------------------------------------
//不选择
relevanceAddData(caseName, "1", "1");
//选择第一条删除
relevanceAddData(caseName, "2", "2");
//选择最后删除
relevanceAddData(caseName, "3", "2");
//选择多条删除
relevanceAddData(caseName, "4", "2");
//选择一页数据删除
relevanceAddData(caseName, "5", "3");
//在只有一页数据的情况下全选
relevanceAddData(caseName, "6", "4");
//列表搜索后勾选部分数据
relevanceAddData(caseName, "7", "2");
//列表搜索后数据全选
relevanceAddData(caseName, "8", "5");
//----------------------------------------
//存储前置条件信息
addFieldText(LabelType.PRECONDITION, getAllLabelText(caseName, LabelType.PRECONDITION));
//存储关键词信息
addFieldText(LabelType.KEY, getLabelText(caseName, LabelType.KEY, "1"));
//存储优先级信息
addFieldText(LabelType.RANK, getLabelText(caseName, LabelType.RANK, "1"));
return this;
}
/**
* <p><b>文件名</b>DataListCase.java</p>
* <p><b>用途</b>枚举在预设测试用例中需要被替换的词语</p>
@ -329,6 +521,14 @@ public class DataListCase extends Case {
* 导出按钮
*/
EXPORT_BUTTON_NAME("导出按钮"),
/**
* 下级选项
*/
DONW_CONDITION("下级选项"),
/**
* 删除按钮
*/
DELECT_BUTTON("删除按钮"),
;
/**
* 存储需要替换的单词名称

View File

@ -1,4 +1,4 @@
package pres.auxiliary.work.n.tcase;
package pres.auxiliary.work.n.testcase;
/**
* <p><b>文件名</b>FieidType.java</p>

View File

@ -1,4 +1,4 @@
package pres.auxiliary.work.n.tcase;
package pres.auxiliary.work.n.testcase;
/**
* <p><b>文件名</b>IncorrectFileException.java</p>

View File

@ -1,4 +1,4 @@
package pres.auxiliary.work.n.tcase;
package pres.auxiliary.work.n.testcase;
import java.io.File;
import java.util.Arrays;

View File

@ -1,4 +1,4 @@
package pres.auxiliary.work.n.tcase;
package pres.auxiliary.work.n.testcase;
public class LabelNotFoundException extends RuntimeException {

View File

@ -1,4 +1,4 @@
package pres.auxiliary.work.n.tcase;
package pres.auxiliary.work.n.testcase;
/**
* <p><b>文件名</b>LabelType.java</p>

View File

@ -1,4 +1,4 @@
package pres.auxiliary.work.n.tcase;
package pres.auxiliary.work.n.testcase;
import org.apache.poi.ss.usermodel.IndexedColors;

View File

@ -1,4 +1,4 @@
package pres.auxiliary.work.n.tcase;
package pres.auxiliary.work.n.testcase;
import java.io.File;
import java.io.FileOutputStream;

View File

@ -1,4 +1,4 @@
package pres.auxiliary.work.n.tcase;
package pres.auxiliary.work.n.testcase;
import java.io.File;
import java.io.FileInputStream;

View File

@ -0,0 +1,185 @@
package pres.auxiliary.work.testcase;
import java.io.File;
import org.testng.annotations.AfterClass;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import pres.auxiliary.work.n.testcase.DataListCase;
import pres.auxiliary.work.n.testcase.LabelType;
import pres.auxiliary.work.n.testcase.TestCaseTemplet;
import pres.auxiliary.work.n.testcase.TestCaseWrite;
public class DataListCaseTest {
/**
* 指向生成的测试用例文件
*/
File testCaseFile = new File("src/test/java/pres/auxiliary/work/testcase/测试用例.xlsx");
/**
* 指向测试用例文件字段配置文件
*/
File templetXml = new File("ConfigurationFiles/CaseConfigurationFile/FileTemplet/jira测试用例导入模板.xml");
/**
* 指向与InformationCase使用到的预设测试用例配置文件
*/
File browseListCase = new File("ConfigurationFiles/CaseConfigurationFile/CaseTemplet/BrowseList.xml");
DataListCase dc = new DataListCase(browseListCase);
/**
* 用于写入用例到文件中
*/
TestCaseWrite tcw;
@BeforeClass
public void start() throws Exception {
TestCaseTemplet tct = new TestCaseTemplet(templetXml, testCaseFile);
//为方便演示则允许覆盖用例文件
tct.setCoverFile(true);
//生成用例文件
tct.create();
//初始化
tcw = new TestCaseWrite(templetXml, testCaseFile);
dc.setReplaceWord(DataListCase.DATA_NAME, "用户");
//设置测试用例文件中字段与测试用例模板中的字段对应关系
tcw.relevanceCase("步骤", LabelType.STEP.getName());
tcw.relevanceCase("预期", LabelType.EXCEPT.getName());
tcw.relevanceCase("优先级", LabelType.RANK.getName());
tcw.relevanceCase("前置条件", LabelType.PRECONDITION.getName());
tcw.relevanceCase("标题", LabelType.TITLE.getName());
//设置每条测试用例中值都一样的字段
tcw.setFieldValue("设计者", "彭宇琦");
tcw.setFieldValue("状态", "2");
}
@AfterClass
public void outputInformation() throws Exception {
//写入用例
tcw.writeFile();
//打开用例文件夹
java.awt.Desktop.getDesktop().open(testCaseFile.getParentFile());
java.awt.Desktop.getDesktop().open(testCaseFile);
}
@AfterMethod
public void endCase() {
tcw.end();
}
/**
* 测试{@link DataListCase#appBrowseListCase()}
*/
@Test
public void appBrowseListCaseTest() {
tcw.addCase(dc.appBrowseListCase());
}
/**
* 测试{@link DataListCase#dateSearchCase(String)}
*/
@Test
public void dateSearchCaseTest() {
tcw.addCase(dc.dateSearchCase("考勤时间"));
}
/**
* 测试{@link DataListCase#exportListCase(String, boolean)}
*/
@Test
public void exportListCaseTest_True() {
tcw.addCase(dc.exportListCase("导出数据", true));
}
/**
* 测试{@link DataListCase#exportListCase(String, boolean)}
*/
@Test
public void exportListCaseTest_false() {
tcw.addCase(dc.exportListCase("导出数据", false));
}
/**
* 测试{@link DataListCase#importListCase()}
*/
@Test
public void importListCaseTest() {
tcw.addCase(dc.importListCase());
}
/**
* 测试{@link DataListCase#listSortCase(String)}
*/
@Test
public void listSortCaseTest() {
tcw.addCase(dc.listSortCase("创建时间"));
}
/**
* 测试{@link DataListCase#resetSearchCase()}
*/
@Test
public void resetSearchCaseTest() {
tcw.addCase(dc.resetSearchCase());
}
/**
* 测试{@link DataListCase#selectSearchCase(String)}
*/
@Test
public void selectSearchCaseTest_String() {
tcw.addCase(dc.selectSearchCase("班组"));
}
/**
* 测试{@link DataListCase#selectSearchCase(String, String)}
*/
@Test
public void selectSearchCaseTest_StringString() {
tcw.addCase(dc.selectSearchCase("企业单位", "班组"));
}
/**
* 测试{@link DataListCase#switchListShowDataCase()}
*/
@Test
public void switchListShowDataCaseTest() {
tcw.addCase(dc.switchListShowDataCase());
}
/**
* 测试{@link DataListCase#textboxSearchCase(String)}
*/
@Test
public void textboxSearchCaseTest() {
tcw.addCase(dc.textboxSearchCase("统一社会信用代码"));
}
/**
* 测试{@link DataListCase#timeQuantumSearchCase(String, String)}
*/
@Test
public void timeQuantumSearchCaseTest() {
tcw.addCase(dc.timeQuantumSearchCase("开工时间", "竣工时间"));
}
/**
* 测试{@link DataListCase#webBrowseListCase()}
*/
@Test
public void webBrowseListCaseTest() {
tcw.addCase(dc.webBrowseListCase());
}
/**
* 测试{@link DataListCase#delectDataCase(String)}
*/
@Test
public void delectDataCaseTest() {
tcw.addCase(dc.delectDataCase("删除"));
}
}

View File

@ -6,11 +6,11 @@ import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import pres.auxiliary.work.n.tcase.CaseContentException;
import pres.auxiliary.work.n.tcase.InformationCase;
import pres.auxiliary.work.n.tcase.InformationCase.FileRuleType;
import pres.auxiliary.work.n.tcase.InformationCase.InputRuleType;
import pres.auxiliary.work.n.tcase.InformationCase.UploadFileType;
import pres.auxiliary.work.n.testcase.CaseContentException;
import pres.auxiliary.work.n.testcase.InformationCase;
import pres.auxiliary.work.n.testcase.InformationCase.FileRuleType;
import pres.auxiliary.work.n.testcase.InformationCase.InputRuleType;
import pres.auxiliary.work.n.testcase.InformationCase.UploadFileType;
public class InformationCaseTest {
InformationCase ic = new InformationCase(new File("ConfigurationFiles/CaseConfigurationFile/CaseTemplet/AddInformation.xml"));
@ -180,7 +180,7 @@ InformationCase ic = new InformationCase(new File("ConfigurationFiles/CaseConfig
}
/**
* 测试{@link InformationCase#addPhoneCase(String, boolean, boolean, boolean, pres.auxiliary.work.n.tcase.InformationCase.PhoneType...)}方法
* 测试{@link InformationCase#addPhoneCase(String, boolean, boolean, boolean, pres.auxiliary.work.n.testcase.InformationCase.PhoneType...)}方法
*/
@Test
public void addPhoneCaseTest_Fixed() {
@ -188,7 +188,7 @@ InformationCase ic = new InformationCase(new File("ConfigurationFiles/CaseConfig
}
/**
* 测试{@link InformationCase#addPhoneCase(String, boolean, boolean, boolean, pres.auxiliary.work.n.tcase.InformationCase.PhoneType...)}方法
* 测试{@link InformationCase#addPhoneCase(String, boolean, boolean, boolean, pres.auxiliary.work.n.testcase.InformationCase.PhoneType...)}方法
*/
@Test
public void addPhoneCaseTest_Moble() {
@ -196,7 +196,7 @@ InformationCase ic = new InformationCase(new File("ConfigurationFiles/CaseConfig
}
/**
* 测试{@link InformationCase#addPhoneCase(String, boolean, boolean, boolean, pres.auxiliary.work.n.tcase.InformationCase.PhoneType...)}方法
* 测试{@link InformationCase#addPhoneCase(String, boolean, boolean, boolean, pres.auxiliary.work.n.testcase.InformationCase.PhoneType...)}方法
*/
@Test
public void addPhoneCaseTest_All() {
@ -284,7 +284,7 @@ InformationCase ic = new InformationCase(new File("ConfigurationFiles/CaseConfig
}
/**
* 测试{@link InformationCase#addUploadFileCase(String, boolean, boolean, boolean, int, int, int, pres.auxiliary.work.n.tcase.InformationCase.UploadFileType, pres.auxiliary.work.n.tcase.InformationCase.FileRuleType...)}方法
* 测试{@link InformationCase#addUploadFileCase(String, boolean, boolean, boolean, int, int, int, pres.auxiliary.work.n.testcase.InformationCase.UploadFileType, pres.auxiliary.work.n.testcase.InformationCase.FileRuleType...)}方法
*/
@Test
public void addUploadFileCaseTest_1() {
@ -292,7 +292,7 @@ InformationCase ic = new InformationCase(new File("ConfigurationFiles/CaseConfig
}
/**
* 测试{@link InformationCase#addUploadFileCase(String, boolean, boolean, boolean, int, int, int, pres.auxiliary.work.n.tcase.InformationCase.UploadFileType, pres.auxiliary.work.n.tcase.InformationCase.FileRuleType...)}方法
* 测试{@link InformationCase#addUploadFileCase(String, boolean, boolean, boolean, int, int, int, pres.auxiliary.work.n.testcase.InformationCase.UploadFileType, pres.auxiliary.work.n.testcase.InformationCase.FileRuleType...)}方法
*/
@Test
public void addUploadFileCaseTest_2() {
@ -300,7 +300,7 @@ InformationCase ic = new InformationCase(new File("ConfigurationFiles/CaseConfig
}
/**
* 测试{@link InformationCase#addUploadFileCase(String, boolean, boolean, boolean, int, int, int, pres.auxiliary.work.n.tcase.InformationCase.UploadFileType, pres.auxiliary.work.n.tcase.InformationCase.FileRuleType...)}方法
* 测试{@link InformationCase#addUploadFileCase(String, boolean, boolean, boolean, int, int, int, pres.auxiliary.work.n.testcase.InformationCase.UploadFileType, pres.auxiliary.work.n.testcase.InformationCase.FileRuleType...)}方法
*/
@Test
public void addUploadFileCaseTest_3() {
@ -308,7 +308,7 @@ InformationCase ic = new InformationCase(new File("ConfigurationFiles/CaseConfig
}
/**
* 测试{@link InformationCase#addUploadFileCase(String, boolean, boolean, boolean, int, int, int, pres.auxiliary.work.n.tcase.InformationCase.UploadFileType, pres.auxiliary.work.n.tcase.InformationCase.FileRuleType...)}方法
* 测试{@link InformationCase#addUploadFileCase(String, boolean, boolean, boolean, int, int, int, pres.auxiliary.work.n.testcase.InformationCase.UploadFileType, pres.auxiliary.work.n.testcase.InformationCase.FileRuleType...)}方法
*/
@Test
public void addUploadFileCaseTest_4() {
@ -316,7 +316,7 @@ InformationCase ic = new InformationCase(new File("ConfigurationFiles/CaseConfig
}
/**
* 测试{@link InformationCase#addUploadFileCase(String, boolean, boolean, boolean, int, int, int, pres.auxiliary.work.n.tcase.InformationCase.UploadFileType, pres.auxiliary.work.n.tcase.InformationCase.FileRuleType...)}方法
* 测试{@link InformationCase#addUploadFileCase(String, boolean, boolean, boolean, int, int, int, pres.auxiliary.work.n.testcase.InformationCase.UploadFileType, pres.auxiliary.work.n.testcase.InformationCase.FileRuleType...)}方法
*/
@Test
public void addUploadFileCaseTest_5() {

View File

@ -10,12 +10,12 @@ import org.testng.annotations.BeforeGroups;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
import pres.auxiliary.work.n.tcase.InformationCase;
import pres.auxiliary.work.n.tcase.InformationCase.InputRuleType;
import pres.auxiliary.work.n.tcase.LabelType;
import pres.auxiliary.work.n.tcase.MarkColorsType;
import pres.auxiliary.work.n.tcase.TestCaseTemplet;
import pres.auxiliary.work.n.tcase.TestCaseWrite;
import pres.auxiliary.work.n.testcase.InformationCase;
import pres.auxiliary.work.n.testcase.LabelType;
import pres.auxiliary.work.n.testcase.MarkColorsType;
import pres.auxiliary.work.n.testcase.TestCaseTemplet;
import pres.auxiliary.work.n.testcase.TestCaseWrite;
import pres.auxiliary.work.n.testcase.InformationCase.InputRuleType;
public class ProgramWriteTestCaseDemo {
/**

View File

@ -9,8 +9,8 @@ import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import pres.auxiliary.work.n.tcase.IncorrectFileException;
import pres.auxiliary.work.n.tcase.TestCaseTemplet;
import pres.auxiliary.work.n.testcase.IncorrectFileException;
import pres.auxiliary.work.n.testcase.TestCaseTemplet;
public class TestCaseTempletTest {
/**

View File

@ -11,13 +11,13 @@ import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import pres.auxiliary.work.n.tcase.FieldType;
import pres.auxiliary.work.n.tcase.InformationCase;
import pres.auxiliary.work.n.tcase.LabelType;
import pres.auxiliary.work.n.tcase.MarkColorsType;
import pres.auxiliary.work.n.tcase.TestCaseTemplet;
import pres.auxiliary.work.n.tcase.TestCaseWrite;
import pres.auxiliary.work.n.tcase.TestCaseWrite.CaseMark;
import pres.auxiliary.work.n.testcase.FieldType;
import pres.auxiliary.work.n.testcase.InformationCase;
import pres.auxiliary.work.n.testcase.LabelType;
import pres.auxiliary.work.n.testcase.MarkColorsType;
import pres.auxiliary.work.n.testcase.TestCaseTemplet;
import pres.auxiliary.work.n.testcase.TestCaseWrite;
import pres.auxiliary.work.n.testcase.TestCaseWrite.CaseMark;
/**
* <p>
@ -112,7 +112,7 @@ public class WriteTestCaseTest {
}
/**
* 测试{@link TestCaseWrite#addCase(pres.auxiliary.work.n.tcase.Case)}方法
* 测试{@link TestCaseWrite#addCase(pres.auxiliary.work.n.testcase.Case)}方法
*/
@Test
public void addCaseTest() {