完成添加信息类用例生成工具

This commit is contained in:
彭宇琦 2020-03-19 19:29:27 +08:00
parent 1dfd94e886
commit aaf57138be
4 changed files with 574 additions and 113 deletions

View File

@ -15,7 +15,7 @@
<except id='4' value='点击清空按钮后,填写的内容被清空,点击“*{按钮名称}*”按钮后,*{失败预期前文}**{信息}*创建失败,并给出相应的提示*{失败预期后文}*'/>
</excepts>
<titles>
<title id='1' value='新增不同*{控件名称}*的*{信息}*' />
<title id='1' value='对新增*{信息}*界面的*{控件名称}*进行测试' />
</titles>
<preconditions>
<precondition id='1' value='已在新增*{信息}*的页面上' />
@ -54,7 +54,7 @@
<except id='6' value='*{成功预期前文}**{信息}*创建成功,多余的小数位将按照规则舍弃,界面返回到列表页,其*{信息}*列表上显示新增的信息*{成功预期后文}*'/>
</excepts>
<titles>
<title id='1' value='新增不同*{控件名称}*的*{信息}*' />
<title id='1' value='对新增*{信息}*界面的*{控件名称}*进行测试' />
</titles>
<preconditions>
<precondition id='1' value='已在新增*{信息}*的页面上' />
@ -78,13 +78,13 @@
<step id='4' value='选择选项后,点击清除按钮'/>
</steps>
<excepts>
<except id='1' value='*{成功预期前文}**{信息}*创建成功,界面返回到列表页,其*{信息}*列表上显示新增的信息*{成功预期后文}*'/>
<except id='1' value='*{成功预期前文}**{信息}*创建成功,界面返回到列表页,其*{信息}*列表上显示新增的信息,并且新增数据的*{控件名称}*显示为新增时所选信息*{成功预期后文}*'/>
<except id='2' value='*{失败预期前文}**{信息}*创建失败,并给出相应的提示*{失败预期后文}*'/>
<except id='3' value='选项变为默认选项或第一个选项'/>
<except id='4' value='选项变为空选项'/>
</excepts>
<titles>
<title id='1' value='新增不同*{控件名称}*的*{信息}*' />
<title id='1' value='对新增*{信息}*界面的*{控件名称}*进行测试' />
</titles>
<preconditions>
<precondition id='1' value='已在新增*{信息}*的页面上' />
@ -109,13 +109,13 @@
<step id='5' value='查看*{控件名称}*选项'/>
</steps>
<excepts>
<except id='1' value='*{成功预期前文}**{信息}*创建成功,界面返回到列表页,其*{信息}*列表上显示新增的信息*{成功预期后文}*'/>
<except id='1' value='*{成功预期前文}**{信息}*创建成功,界面返回到列表页,其*{信息}*列表上显示新增的信息,并且新增数据的*{控件名称}*显示为新增时所选信息*{成功预期后文}*'/>
<except id='2' value='*{失败预期前文}**{信息}*创建失败,并给出相应的提示*{失败预期后文}*'/>
<except id='3' value='不会出现有两个或以上的选项被选中的情况'/>
<except id='4' value='*{控件名称}*选项应有一个默认选项'/>
</excepts>
<titles>
<title id='1' value='新增不同*{控件名称}*的*{信息}*' />
<title id='1' value='对新增*{信息}*界面的*{控件名称}*进行测试' />
</titles>
<preconditions>
<precondition id='1' value='已在新增*{信息}*的页面上' />
@ -141,13 +141,13 @@
<step id='6' value='选择其中多个选项,点击“*{按钮名称}*”按钮'/>
</steps>
<excepts>
<except id='1' value='*{成功预期前文}**{信息}*创建成功,界面返回到列表页,其*{信息}*列表上显示新增的信息*{成功预期后文}*'/>
<except id='1' value='*{成功预期前文}**{信息}*创建成功,界面返回到列表页,其*{信息}*列表上显示新增的信息,并且新增数据的*{控件名称}*显示为新增时所选信息*{成功预期后文}*'/>
<except id='2' value='*{失败预期前文}**{信息}*创建失败,并给出相应的提示*{失败预期后文}*'/>
<except id='3' value='所有的选项均被勾选'/>
<except id='4' value='所有的选项均被取消勾选'/>
</excepts>
<titles>
<title id='1' value='新增不同*{控件名称}*的*{信息}*' />
<title id='1' value='对新增*{信息}*界面的*{控件名称}*进行测试' />
</titles>
<preconditions>
<precondition id='1' value='已在新增*{信息}*的页面上' />
@ -170,17 +170,17 @@
<step id='3' value='选择时间后清空时间,点击“*{按钮名称}*”按钮'/>
<step id='4' value='手动输入正确格式的日期,点击“*{按钮名称}*”按钮'/>
<step id='5' value='手动输入非正确格式的日期,点击“*{按钮名称}*”按钮'/>
<step id='6' value='输入或选择大于*{结束日期}*的日期,点击“*{按钮名称}*”按钮'/>
<step id='7' value='选择大于*{结束日期}*的日期,点击“*{按钮名称}*”按钮'/>
<step id='8' value='输入或选择小于*{开始日期}*的日期,点击“*{按钮名称}*”按钮'/>
<step id='9' value='选择小于*{开始日期}*的日期,点击“*{按钮名称}*”按钮'/>
<step id='6' value='选择大于*{结束日期}*的日期,点击“*{按钮名称}*”按钮'/>
<step id='7' value='选择与“*{结束日期}*”相同的日期,点击“*{按钮名称}*”按钮'/>
<step id='8' value='选择小于*{开始日期}*的日期,点击“*{按钮名称}*”按钮'/>
<step id='9' value='选择与“*{开始日期}*”相同的日期,点击“*{按钮名称}*”按钮'/>
</steps>
<excepts>
<except id='1' value='*{成功预期前文}**{信息}*创建成功,界面返回到列表页,其*{信息}*列表上显示新增的信息*{成功预期后文}*'/>
<except id='2' value='*{失败预期前文}**{信息}*创建失败,并给出相应的提示*{失败预期后文}*'/>
</excepts>
<titles>
<title id='1' value='新增不同*{控件名称}*的*{信息}*' />
<title id='1' value='对新增*{信息}*界面的*{控件名称}*进行测试' />
</titles>
<preconditions>
<precondition id='1' value='已在新增*{信息}*的页面上' />
@ -210,7 +210,7 @@
<except id='2' value='*{失败预期前文}**{信息}*创建失败,并给出相应的提示*{失败预期后文}*'/>
</excepts>
<titles>
<title id='1' value='新增不同*{控件名称}*的*{信息}*' />
<title id='1' value='对新增*{信息}*界面的*{控件名称}*进行测试' />
</titles>
<preconditions>
<precondition id='1' value='已在新增*{信息}*的页面上' />
@ -241,7 +241,7 @@
<except id='2' value='*{失败预期前文}**{信息}*创建失败,并给出相应的提示*{失败预期后文}*'/>
</excepts>
<titles>
<title id='1' value='新增不同*{控件名称}*的*{信息}*' />
<title id='1' value='对新增*{信息}*界面的*{控件名称}*进行测试' />
</titles>
<preconditions>
<precondition id='1' value='已在新增*{信息}*的页面上' />
@ -280,7 +280,7 @@
<except id='4' value='界面上不显示任何图片'/>
</excepts>
<titles>
<title id='1' value='新增不同*{控件名称}*的*{信息}*' />
<title id='1' value='对新增*{信息}*界面的*{控件名称}*进行测试' />
</titles>
<preconditions>
<precondition id='1' value='已在新增*{信息}*的页面上' />
@ -298,23 +298,31 @@
<case name='addUploadFileCase'>
<steps>
<step id='1' value='不上传文件,点击“*{按钮名称}*”按钮'/>
<step id='2' value='上传文件后删除文件,再上传一个文件,点击“*{按钮名称}*”按钮'/>
<step id='3' value='上传同一个文件,点击“*{按钮名称}*”按钮'/>
<step id='4' value='上传超过限制大小的文件,点击“*{按钮名称}*”按钮'/>
<step id='5' value='上传较大的文件如超过50M的文件点击“*{按钮名称}*”按钮'/>
<step id='6' value='上传非*{文件限制}*格式的文件,点击“*{按钮名称}*”按钮'/>
<step id='7' value='*{操作名称}*小于*{文件最小个数}**{文件单位}**{文件类型}*,点击“*{按钮名称}*”按钮'/>
<step id='8' value='*{操作名称}**{文件最小个数}**{文件单位}**{文件类型}*,点击“*{按钮名称}*”按钮'/>
<step id='9' value='*{操作名称}*大于*{文件最大个数}**{文件单位}**{文件类型}*,点击“*{按钮名称}*”按钮'/>
<step id='10' value='*{操作名称}**{文件最大个数}**{文件单位}**{文件类型}*,点击“*{按钮名称}*”按钮'/>
<step id='11' value='上传*{文件类型}*后点击相应的预览按钮'/>
<step id='1' value='不上传*{文件类型}*,点击“*{按钮名称}*”按钮'/>
<step id='2' value='上传*{文件类型}*后删除*{文件类型}*,再上传一个*{文件类型}*,点击“*{按钮名称}*”按钮'/>
<step id='3' value='上传*{文件类型}*后删除*{文件类型}*,点击“*{按钮名称}*”按钮'/>
<step id='4' value='上传超过*{文件大小}*M大小的*{文件类型}*'/>
<step id='5' value='上传较大的*{文件类型}*'/>
<step id='6' value='上传非*{文件格式}*格式的*{文件类型}*'/>
<step id='7' value='上传小于*{文件最小个数}*个*{文件类型}*,点击“*{按钮名称}*”按钮'/>
<step id='8' value='上传*{文件最小个数}*个*{文件类型}*,点击“*{按钮名称}*”按钮'/>
<step id='9' value='上传大于*{文件最大个数}*个*{文件类型}*,点击“*{按钮名称}*”按钮'/>
<step id='10' value='上传*{文件最大个数}*个*{文件类型}*,点击“*{按钮名称}*”按钮'/>
</steps>
<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='给出文件超过大小限制相关的提示'/>
<except id='9' value='给出文件格式不正确相关的提示'/>
<except id='8' value='若允许上传则点击“*{按钮名称}*”按钮后*{信息}*创建成功,若无法上传,则给出相应的友好提示'/>
</excepts>
<titles>
<title id='1' value='新增不同*{控件名称}*的*{信息}*' />
<title id='1' value='对新增*{信息}*界面的*{控件名称}*进行测试' />
</titles>
<preconditions>
<precondition id='1' value='已在新增*{信息}*的页面上' />

View File

@ -1,56 +0,0 @@
package pres.auxiliary.work.n.tcase;
/**
* <p><b>文件名</b>InputRuleType.java</p>
* <p><b>用途</b>用于枚举控件中可输入字符类型的限制</p>
* <p><b>编码时间</b>2020年3月14日 下午9:14:30</p>
* <p><b>修改时间</b>2020年3月14日 下午9:14:30</p>
* @author 彭宇琦
* @version Ver1.0
* @since JDK 12
*/
public enum InputRuleType {
/**
* 中文
*/
CH("中文"),
/**
* 英文
*/
EN("英文"),
/**
* 数字
*/
NUM("数字"),
/**
* 特殊字符
*/
SPE("特殊字符"),
/**
* 小写字母
*/
LOW("小写字母"),
/**
* 大写字母
*/
CAP("大写字母");
/**
* 枚举名称
*/
private String name;
/**
* 初始化枚举名称
* @param name 枚举名称
*/
private InputRuleType(String name) {
this.name = name;
}
/**
* 返回枚举名称
* @return 枚举名称
*/
public String getName() {
return name;
}
}

View File

@ -170,11 +170,6 @@ public class InformationCase extends Case {
//----------------------------------------------------------------
//填写存在的内容
addFieldText(LabelType.STEP, getLabelText(caseName, LabelType.STEP, "12"));
//根据是否必填来判断填入成功或失败预期
addFieldText(LabelType.EXCEPT, getLabelText(caseName, LabelType.EXCEPT, isRepeat ? "2" : "1"));
//存储前置条件信息
addFieldText(LabelType.PRECONDITION, getAllLabelText(caseName, LabelType.PRECONDITION));
//存储关键词信息
@ -190,7 +185,8 @@ public class InformationCase extends Case {
* 1.输入长度限制为2~10个字符时addLengthRuleTextboxCase(..., 2, 10, ...)<br>
* 2.输入长度限制为最多输入10个字符时addLengthRuleTextboxCase(..., 0, 10, ...)<br>
* 3.输入长度限制为最少输入2个字符时addLengthRuleTextboxCase(..., 2, 0, ...)<br>
* 注意若两个参数传入一样且都不为0则等价于第2中情况若两个参数都小于等于0时则抛出异常
* 4.输入长度限制仅能输入2个字符时addLengthRuleTextboxCase(..., 2, 2, ...)<br>
* 注意若两个参数都小于等于0时则抛出异常
* @param name 控件名称
* @param isMust 是否必填
* @param isRepeat 是否可以与存在的内容重复
@ -234,7 +230,7 @@ public class InformationCase extends Case {
//等于最小限制
addFieldText(LabelType.STEP, getLabelText(caseName, LabelType.STEP, "5"));
addFieldText(LabelType.EXCEPT, getLabelText(caseName, LabelType.EXCEPT, "1"));
} else if ((minLen == 0 && maxLen != 0) || minLen == maxLen) {
} else if (minLen == 0 && maxLen != 0) {
//存储最大输入限制
wordMap.put(WordType.INPUT_MAX_LENGTH.getName(), String.valueOf(maxLen));
//大于最大限制
@ -257,9 +253,12 @@ public class InformationCase extends Case {
//大于最大限制
addFieldText(LabelType.STEP, getLabelText(caseName, LabelType.STEP, "6"));
addFieldText(LabelType.EXCEPT, getLabelText(caseName, LabelType.EXCEPT, "2"));
//等于最大限制
addFieldText(LabelType.STEP, getLabelText(caseName, LabelType.STEP, "7"));
addFieldText(LabelType.EXCEPT, getLabelText(caseName, LabelType.EXCEPT, "1"));
//若最大最小限制相等则不添加该条用例
if (minLen != maxLen) {
//等于最大限制
addFieldText(LabelType.STEP, getLabelText(caseName, LabelType.STEP, "7"));
addFieldText(LabelType.EXCEPT, getLabelText(caseName, LabelType.EXCEPT, "1"));
}
}
//----------------------------------------------------------------------
@ -458,7 +457,7 @@ public class InformationCase extends Case {
* @param isClear 是否有按钮可以清空文本框
* @return 类本身
*/
public Case addIDCardCase(String name, boolean isMust, boolean isRepeat, boolean isClear) {
public Case addIdCardCase(String name, boolean isMust, boolean isRepeat, boolean isClear) {
//清空字段的内容
clearFieldText();
// 存储case标签的name属性内容
@ -684,29 +683,248 @@ public class InformationCase extends Case {
//----------------------------------------------------------------------
//存储步骤与预期信息
//依次选择选项
addFieldText(LabelType.STEP, getLabelText(caseName, LabelType.STEP, "1"));
addFieldText(LabelType.EXCEPT, getLabelText(caseName, LabelType.EXCEPT, "3"));
//再次依次选择选项
addFieldText(LabelType.STEP, getLabelText(caseName, LabelType.STEP, "2"));
addFieldText(LabelType.EXCEPT, getLabelText(caseName, LabelType.EXCEPT, "4"));
//添加基本用例
dateboxCommonCase(isMust, isInput, isClear);
//----------------------------------------------------------------------
//不进行选择
addFieldText(LabelType.STEP, getLabelText(caseName, LabelType.STEP, "3"));
//存储前置条件信息
addFieldText(LabelType.PRECONDITION, getAllLabelText(caseName, LabelType.PRECONDITION));
//存储关键词信息
addFieldText(LabelType.KEY, getAllLabelText(caseName, LabelType.KEY));
//存储优先级信息
addFieldText(LabelType.RANK, getLabelText(caseName, LabelType.RANK, "1"));
return this;
}
/**
* 用于生成与日期相关的测试用例
* @param name 控件名称
* @param isMust 是否必填
* @param isInput 是否可以输入
* @param isClear 是否可以清除
* @return 类本身
*/
public Case addStartDateCase(String name, String endDateName, boolean isMust, boolean isInput, boolean isClear) {
//清空字段的内容
clearFieldText();
// 存储case标签的name属性内容
String caseName = "addDateCase";
//添加控件名称
wordMap.put(WordType.CONTROL_NAME.getName(), name);
//存储标题信息
addFieldText(LabelType.TITLE, getLabelText(caseName, LabelType.TITLE, "1"));
//----------------------------------------------------------------------
//存储步骤与预期信息
//添加基本用例
dateboxCommonCase(isMust, isInput, isClear);
wordMap.put(WordType.END_DATE.getName(), endDateName);
//大于结束时间
addFieldText(LabelType.STEP, getLabelText(caseName, LabelType.STEP, "6"));
addFieldText(LabelType.EXCEPT, getLabelText(caseName, LabelType.EXCEPT, "2"));
//等于结束时间
addFieldText(LabelType.STEP, getLabelText(caseName, LabelType.STEP, "7"));
addFieldText(LabelType.EXCEPT, getLabelText(caseName, LabelType.EXCEPT, "1"));
//----------------------------------------------------------------------
//存储前置条件信息
addFieldText(LabelType.PRECONDITION, getAllLabelText(caseName, LabelType.PRECONDITION));
//存储关键词信息
addFieldText(LabelType.KEY, getAllLabelText(caseName, LabelType.KEY));
//存储优先级信息
addFieldText(LabelType.RANK, getLabelText(caseName, LabelType.RANK, "1"));
return this;
}
/**
* 用于生成与日期相关的测试用例
* @param name 控件名称
* @param isMust 是否必填
* @param isInput 是否可以输入
* @param isClear 是否可以清除
* @return 类本身
*/
public Case addEndDateCase(String name, String startDateName, boolean isMust, boolean isInput, boolean isClear) {
//清空字段的内容
clearFieldText();
// 存储case标签的name属性内容
String caseName = "addDateCase";
//添加控件名称
wordMap.put(WordType.CONTROL_NAME.getName(), name);
//存储标题信息
addFieldText(LabelType.TITLE, getLabelText(caseName, LabelType.TITLE, "1"));
//----------------------------------------------------------------------
//存储步骤与预期信息
//添加基本用例
dateboxCommonCase(isMust, isInput, isClear);
wordMap.put(WordType.START_DATE.getName(), startDateName);
//小于开始时间
addFieldText(LabelType.STEP, getLabelText(caseName, LabelType.STEP, "8"));
addFieldText(LabelType.EXCEPT, getLabelText(caseName, LabelType.EXCEPT, "2"));
//等于开始时间
addFieldText(LabelType.STEP, getLabelText(caseName, LabelType.STEP, "9"));
addFieldText(LabelType.EXCEPT, getLabelText(caseName, LabelType.EXCEPT, "1"));
//----------------------------------------------------------------------
//存储前置条件信息
addFieldText(LabelType.PRECONDITION, getAllLabelText(caseName, LabelType.PRECONDITION));
//存储关键词信息
addFieldText(LabelType.KEY, getAllLabelText(caseName, LabelType.KEY));
//存储优先级信息
addFieldText(LabelType.RANK, getLabelText(caseName, LabelType.RANK, "1"));
return this;
}
/**
* 用于生成上传文件或图片相关的测试用例当只有单边限制时则其中一个参数传入小于等于0的数字即可例如<br>
* 1.输入文件个数限制为2~10个字符时addUploadFileCase(..., 2, 10, ...)<br>
* 2.输入文件个数限制为最多输入10个字符时addUploadFileCase(..., 0, 10, ...)<br>
* 3.输入文件个数限制为最少输入2个字符时addUploadFileCase(..., 2, 0, ...)<br>
* 4.输入文件个数限制仅能输入2个字符时addUploadFileCase(..., 2, 2, ...)<br>
* 5.若两个参数都小于等于0时则不对文件数量进行限制
* @param name 控件名称
* @param isMust 是否必填
* @param isDelete 是否可以删除
* @param isPreview 是否可以预览
* @param fileSize 文件大小限制单位为M传参大于0时表示有文件大小限制
* @param minLen 最小文件个数限制
* @param maxLen 最大文件个数限制
* @param uploadFileType 上传的文件类型
* @param fileRuleTypes 文件格式限制
* @return 类本身
*/
public Case addUploadFileCase(String name, boolean isMust, boolean isDelete, boolean isPreview, int fileSize, int minLen, int maxLen, UploadFileType uploadFileType, FileRuleType...fileRuleTypes) {
//清空字段的内容
clearFieldText();
// 存储case标签的name属性内容
String caseName = "addUploadFileCase";
//添加控件名称
wordMap.put(WordType.CONTROL_NAME.getName(), name);
//转换输入限制为集合类型
List<FileRuleType> fileRules = Arrays.asList(fileRuleTypes);
//存储标题信息
addFieldText(LabelType.TITLE, getLabelText(caseName, LabelType.TITLE, "1"));
//----------------------------------------------------------------------
//存储步骤与预期信息
//添加文件类型
wordMap.put(WordType.FILE_TYPE.getName(), uploadFileType.getName());
//预览文件
if (isPreview) {
addFieldText(LabelType.STEP, getLabelText(caseName, LabelType.STEP, "11"));
//根据枚举类型选择相应的预期
switch (uploadFileType) {
case FILE:
addFieldText(LabelType.EXCEPT, getLabelText(caseName, LabelType.EXCEPT, "6"));
break;
case IMAGE:
addFieldText(LabelType.EXCEPT, getLabelText(caseName, LabelType.EXCEPT, "5"));
break;
default:
throw new IllegalArgumentException("不支持的类型:" + uploadFileType.getName());
}
}
//不上传文件
addFieldText(LabelType.STEP, getLabelText(caseName, LabelType.STEP, "1"));
addFieldText(LabelType.EXCEPT, getLabelText(caseName, LabelType.EXCEPT, isMust ? "2" : "1"));
//选择第一个
addFieldText(LabelType.STEP, getLabelText(caseName, LabelType.STEP, "4"));
addFieldText(LabelType.EXCEPT, getLabelText(caseName, LabelType.EXCEPT, "1"));
//删除文件用例
if (isDelete) {
//删除文件点保存
addFieldText(LabelType.STEP, getLabelText(caseName, LabelType.STEP, "3"));
addFieldText(LabelType.EXCEPT, getLabelText(caseName, LabelType.EXCEPT, isMust ? "2" : "1"));
//选择最后一个
addFieldText(LabelType.STEP, getLabelText(caseName, LabelType.STEP, "5"));
addFieldText(LabelType.EXCEPT, getLabelText(caseName, LabelType.EXCEPT, "1"));
//删除文件再上传
addFieldText(LabelType.STEP, getLabelText(caseName, LabelType.STEP, "2"));
addFieldText(LabelType.EXCEPT, getLabelText(caseName, LabelType.EXCEPT, uploadFileType.equals(UploadFileType.IMAGE) ? "4" : "3"));
}
//选择多个
addFieldText(LabelType.STEP, getLabelText(caseName, LabelType.STEP, "6"));
addFieldText(LabelType.EXCEPT, getLabelText(caseName, LabelType.EXCEPT, "1"));
//上传文件个数限制
//判断传入的限制参数是否有小于0的参数参数小于0则直接转换为0
minLen = minLen < 0 ? 0 : minLen;
maxLen = maxLen < 0 ? 0 : maxLen;
//判断两个限制参数是否其中一个大于0若是则添加上传文件个数限制的用例
//判断长度是否都为0若都为0则抛出异常
if (minLen != 0 && maxLen == 0) {
//存储最小上传限制
wordMap.put(WordType.UPLOAD_MIN_LENGTH.getName(), String.valueOf(minLen));
//小于最小限制
addFieldText(LabelType.STEP, getLabelText(caseName, LabelType.STEP, "7"));
addFieldText(LabelType.EXCEPT, getLabelText(caseName, LabelType.EXCEPT, "2"));
//等于最小限制
addFieldText(LabelType.STEP, getLabelText(caseName, LabelType.STEP, "8"));
addFieldText(LabelType.EXCEPT, getLabelText(caseName, LabelType.EXCEPT, "1"));
} else if (minLen == 0 && maxLen != 0) {
//存储最大输入限制
wordMap.put(WordType.UPLOAD_MAX_LENGTH.getName(), String.valueOf(maxLen));
//大于最大限制
addFieldText(LabelType.STEP, getLabelText(caseName, LabelType.STEP, "9"));
addFieldText(LabelType.EXCEPT, getLabelText(caseName, LabelType.EXCEPT, "2"));
//等于最大限制
addFieldText(LabelType.STEP, getLabelText(caseName, LabelType.STEP, "10"));
addFieldText(LabelType.EXCEPT, getLabelText(caseName, LabelType.EXCEPT, "1"));
} else if (minLen != 0 && maxLen != 0) {
//若都不为0则将相应的内容进行存储且判断最大长度与最小长度是否传反若传反则调换顺序
wordMap.put(WordType.UPLOAD_MIN_LENGTH.getName(), String.valueOf(minLen < maxLen ? minLen : maxLen));
wordMap.put(WordType.UPLOAD_MAX_LENGTH.getName(), String.valueOf(minLen < maxLen ? maxLen : minLen));
//小于最小限制
addFieldText(LabelType.STEP, getLabelText(caseName, LabelType.STEP, "7"));
addFieldText(LabelType.EXCEPT, getLabelText(caseName, LabelType.EXCEPT, "2"));
//等于最小限制
addFieldText(LabelType.STEP, getLabelText(caseName, LabelType.STEP, "8"));
addFieldText(LabelType.EXCEPT, getLabelText(caseName, LabelType.EXCEPT, "1"));
//大于最大限制
addFieldText(LabelType.STEP, getLabelText(caseName, LabelType.STEP, "9"));
addFieldText(LabelType.EXCEPT, getLabelText(caseName, LabelType.EXCEPT, "2"));
//若最大最小限制相等则不添加等于最大限制
if (minLen != maxLen) {
//等于最大限制
addFieldText(LabelType.STEP, getLabelText(caseName, LabelType.STEP, "10"));
addFieldText(LabelType.EXCEPT, getLabelText(caseName, LabelType.EXCEPT, "1"));
}
} else {
//若均等于0则不进行处理
}
//上传大于限制的文件
if (fileSize > 0) {
//存储大小限制
wordMap.put(WordType.FILE_SIZE.getName(), String.valueOf(fileSize));
//超过大小限制的用例
addFieldText(LabelType.STEP, getLabelText(caseName, LabelType.STEP, "4"));
addFieldText(LabelType.EXCEPT, getLabelText(caseName, LabelType.EXCEPT, "7"));
} else {
//超过大小限制的用例
addFieldText(LabelType.STEP, getLabelText(caseName, LabelType.STEP, "5"));
addFieldText(LabelType.EXCEPT, getLabelText(caseName, LabelType.EXCEPT, "8"));
}
//上传非限制格式文件
if (fileRules.size() != 0) {
String fileRulesText = "";
for (FileRuleType fileRule : fileRules) {
fileRulesText += (fileRule.getName() + "");
}
wordMap.put(WordType.FILE_RULE.getName(), fileRulesText.substring(0, fileRulesText.length() - 1));
addFieldText(LabelType.STEP, getLabelText(caseName, LabelType.STEP, "6"));
addFieldText(LabelType.EXCEPT, getLabelText(caseName, LabelType.EXCEPT, "9"));
}
//----------------------------------------------------------------------
//存储前置条件信息
@ -861,6 +1079,34 @@ public class InformationCase extends Case {
* 小数位数
*/
INPUT_DECIMALS("小数位数"),
/**
* 结束日期
*/
END_DATE("结束日期"),
/**
* 开始日期
*/
START_DATE("开始日期"),
/**
* 文件类型
*/
FILE_TYPE("文件类型"),
/**
* 最长文件个数限制
*/
UPLOAD_MAX_LENGTH("文件最大个数"),
/**
* 最短文件个数限制
*/
UPLOAD_MIN_LENGTH("文件最小个数"),
/**
* 文件大小
*/
FILE_SIZE("文件大小"),
/**
* 文件格式
*/
FILE_RULE("文件格式"),
;
/**
* 存储需要替换的单词名称
@ -958,4 +1204,124 @@ public class InformationCase extends Case {
*/
FIXED;
}
/**
* <p><b>文件名</b>InformationCase.java</p>
* <p><b>用途</b>用于枚举上传文件的格式</p>
* <p><b>编码时间</b>2020年3月18日上午9:30:34</p>
* <p><b>修改时间</b>2020年3月18日上午9:30:34</p>
* @author 彭宇琦
* @version Ver1.0
* @since JDK 12
*
*/
public enum FileRuleType {
/**
* jpg格式
*/
JPG("jpg"),
/**
* gif格式
*/
GIF("gif"),
/**
* png格式
*/
PNG("png"),
/**
* bmp格式
*/
BMP("bmp"),
/**
* doc格式
*/
DOC("doc"),
/**
* docx格式
*/
DOCX("docx"),
/**
* txt格式
*/
TXT("txt"),
/**
* xls格式
*/
XLS("xls"),
/**
* xlsx格式
*/
XLSX("xlsx"),
/**
* pdf格式
*/
PDF("pdf"),
/**
* csv格式
*/
CSV("csv"),
;
/**
* 文件格式名称
*/
private String name;
/**
* 初始化枚举名称
* @param name 枚举名称
*/
private FileRuleType(String name) {
this.name = name;
}
/**
* 返回格式名称
*/
public String getName() {
return name;
}
}
/**
* <p><b>文件名</b>InformationCase.java</p>
* <p><b>用途</b>用于枚举上传文件的类型</p>
* <p><b>编码时间</b>2020年3月18日上午9:56:51</p>
* <p><b>修改时间</b>2020年3月18日上午9:56:51</p>
* @author 彭宇琦
* @version Ver1.0
* @since JDK 12
*
*/
public enum UploadFileType {
/**
* 上传文件
*/
FILE("文件"),
/**
* 上传图片
*/
IMAGE("图片")
;
/**
* 上传文件类型名称
*/
private String name;
/**
* 返回枚举名称
* @return 枚举名称
*/
public String getName() {
return name;
}
/**
* 初始化枚举值名称
* @param name 枚举值名称
*/
private UploadFileType(String name) {
this.name = name;
}
}
}

View File

@ -1,6 +1,7 @@
package pres.auxiliary.work.testcase;
import java.io.File;
import java.util.concurrent.atomic.AtomicInteger;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeClass;
@ -8,7 +9,9 @@ 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;
public class InformationCaseTest {
InformationCase ic = new InformationCase(new File("ConfigurationFiles/CaseConfigurationFile/CaseTemplet/AddInformation.xml"));
@ -16,7 +19,7 @@ InformationCase ic = new InformationCase(new File("ConfigurationFiles/CaseConfig
@BeforeClass
public void start() {
ic.setReplaceWord(InformationCase.BUTTON_NAME, "保存");
ic.setReplaceWord(InformationCase.ADD_INFORMATION, "用户列表");
ic.setReplaceWord(InformationCase.ADD_INFORMATION, "用户");
ic.setReplaceWord(InformationCase.FAIL_EXCEPT_TEXT_START, "测试*失败*预期前文");
ic.setReplaceWord(InformationCase.FAIL_EXCEPT_TEXT_END, "测试*失败*预期后文");
ic.setReplaceWord(InformationCase.SUCCESS_EXCEPT_TEXT_START, "测试*成功*预期前文");
@ -27,8 +30,12 @@ InformationCase ic = new InformationCase(new File("ConfigurationFiles/CaseConfig
public void outputInformation() {
System.out.println("------------------------------");
ic.getFieldTextMap().forEach((k, v) -> {
//可生成序号类封装了普通的自增等操作
AtomicInteger commitCount = new AtomicInteger(1);
System.out.println(k + ":");
v.forEach(System.out :: println);
v.forEach(s -> {
System.out.println(commitCount.getAndIncrement() + "." + s);
});
});
}
@ -157,4 +164,140 @@ InformationCase ic = new InformationCase(new File("ConfigurationFiles/CaseConfig
public void addNumberRuleTextboxCaseTest_6() {
ic.addNumberRuleTextboxCase("测试控件14", true, false, false, 2, InformationCase.MAX_NUMBER, 20);
}
/**
* 测试{@link InformationCase#addPhoneCase(String, boolean, boolean, boolean, pres.auxiliary.work.n.tcase.InformationCase.PhoneType...)}方法
*/
@Test
public void addPhoneCaseTest_Fixed() {
ic.addPhoneCase("测试控件15", true, false, false, InformationCase.PhoneType.FIXED);
}
/**
* 测试{@link InformationCase#addPhoneCase(String, boolean, boolean, boolean, pres.auxiliary.work.n.tcase.InformationCase.PhoneType...)}方法
*/
@Test
public void addPhoneCaseTest_Moble() {
ic.addPhoneCase("测试控件16", true, false, false, InformationCase.PhoneType.MOBLE);
}
/**
* 测试{@link InformationCase#addPhoneCase(String, boolean, boolean, boolean, pres.auxiliary.work.n.tcase.InformationCase.PhoneType...)}方法
*/
@Test
public void addPhoneCaseTest_All() {
ic.addPhoneCase("测试控件17", true, false, false, InformationCase.PhoneType.values());
}
/**
* 测试{@link InformationCase#addIDCardCase(String, boolean, boolean, boolean)}方法
*/
@Test
public void addIDCardCaseTest() {
ic.addIdCardCase("测试控件18", true, false, false);
}
/**
* 测试{@link InformationCase#addSelectboxCase(String, boolean, boolean, boolean)}方法
*/
@Test
public void addSelectboxCaseTest_HasEmpty() {
ic.addSelectboxCase("测试控件19", true, true, true);
}
/**
* 测试{@link InformationCase#addSelectboxCase(String, boolean, boolean, boolean)}方法
*/
@Test
public void addSelectboxCaseTest_NotEmpty() {
ic.addSelectboxCase("测试控件20", true, false, false);
}
/**
* 测试{@link InformationCase#addRadioButtonCase(String)}方法
*/
@Test
public void addRadioButtonCaseTest() {
ic.addRadioButtonCase("测试控件22");
}
/**
* 测试{@link InformationCase#addCheckboxCase(String, boolean)}方法
*/
@Test
public void addCheckboxCaseTest() {
ic.addCheckboxCase("测试控件22", true);
}
/**
* 测试{@link InformationCase#addDateCase(String, boolean, boolean, boolean)}方法
*/
@Test
public void addDateCaseTest_1() {
ic.addDateCase("测试控件22", true, true, true);
}
/**
* 测试{@link InformationCase#addDateCase(String, boolean, boolean, boolean)}方法
*/
@Test
public void addDateCaseTest_2() {
ic.addDateCase("测试控件23", false, false, false);
}
/**
* 测试{@link InformationCase#addStartDateCase(String, String, boolean, boolean, boolean)}方法
*/
@Test
public void addStartDateCaseTest() {
ic.addStartDateCase("测试控件23", "测试控件24", false, false, false);
}
/**
* 测试{@link InformationCase#addEndDateCaseTest(String, String, boolean, boolean, boolean)}方法
*/
@Test
public void addEndDateCaseTest() {
ic.addEndDateCase("测试控件24", "测试控件23", true, true, true);
}
/**
* 测试{@link InformationCase#addUploadFileCase(String, boolean, boolean, boolean, int, int, int, pres.auxiliary.work.n.tcase.InformationCase.UploadFileType, pres.auxiliary.work.n.tcase.InformationCase.FileRuleType...)}方法
*/
@Test
public void addUploadFileCaseTest_1() {
ic.addUploadFileCase("测试控件25", true, true, true, 10, 2, 10, UploadFileType.FILE, FileRuleType.CSV, FileRuleType.XLS, FileRuleType.XLSX);
}
/**
* 测试{@link InformationCase#addUploadFileCase(String, boolean, boolean, boolean, int, int, int, pres.auxiliary.work.n.tcase.InformationCase.UploadFileType, pres.auxiliary.work.n.tcase.InformationCase.FileRuleType...)}方法
*/
@Test
public void addUploadFileCaseTest_2() {
ic.addUploadFileCase("测试控件26", false, false, false, 0, 0, 10, UploadFileType.IMAGE);
}
/**
* 测试{@link InformationCase#addUploadFileCase(String, boolean, boolean, boolean, int, int, int, pres.auxiliary.work.n.tcase.InformationCase.UploadFileType, pres.auxiliary.work.n.tcase.InformationCase.FileRuleType...)}方法
*/
@Test
public void addUploadFileCaseTest_3() {
ic.addUploadFileCase("测试控件27", true, true, true, -1, 2, 0, UploadFileType.IMAGE);
}
/**
* 测试{@link InformationCase#addUploadFileCase(String, boolean, boolean, boolean, int, int, int, pres.auxiliary.work.n.tcase.InformationCase.UploadFileType, pres.auxiliary.work.n.tcase.InformationCase.FileRuleType...)}方法
*/
@Test
public void addUploadFileCaseTest_4() {
ic.addUploadFileCase("测试控件28", false, false, false, -1, 2, 2, UploadFileType.IMAGE);
}
/**
* 测试{@link InformationCase#addUploadFileCase(String, boolean, boolean, boolean, int, int, int, pres.auxiliary.work.n.tcase.InformationCase.UploadFileType, pres.auxiliary.work.n.tcase.InformationCase.FileRuleType...)}方法
*/
@Test
public void addUploadFileCaseTest_5() {
ic.addUploadFileCase("测试控件29", false, false, false, -1, -1, -1, UploadFileType.IMAGE);
}
}