添加设计图

This commit is contained in:
彭宇琦 2020-03-08 17:56:26 +08:00
parent d257043768
commit cface753ac
3 changed files with 140 additions and 11 deletions

View File

@ -291,10 +291,10 @@
<step id='7' value='*{操作名称}*较大的图片如超过3M的图片点击“*{按钮名称}*”按钮'/>
<step id='8' value='上传非*{文件限制}*格式的文件,点击“*{按钮名称}*”按钮'/>
<step id='9' value='*{操作名称}*上传非图片格式的文件,点击“*{按钮名称}*”按钮'/>
<step id='10' value='*{操作名称}*小于*{fileMin}**{s}**{mode}*,点击“*{按钮名称}*”按钮'/>
<step id='11' value='*{操作名称}**{fileMin}**{s}**{mode}*,点击“*{按钮名称}*”按钮'/>
<step id='12' value='*{操作名称}*大于*{fileMax}**{s}**{mode}*,点击“*{按钮名称}*”按钮'/>
<step id='13' value='*{操作名称}**{fileMax}**{s}**{mode}*,点击“*{按钮名称}*”按钮'/>
<step id='10' value='*{操作名称}*小于*{文件最小个数}**{文件单位}**{文件类型}*,点击“*{按钮名称}*”按钮'/>
<step id='11' value='*{操作名称}**{文件最小个数}**{文件单位}**{文件类型}*,点击“*{按钮名称}*”按钮'/>
<step id='12' value='*{操作名称}*大于*{文件最大个数}**{文件单位}**{文件类型}*,点击“*{按钮名称}*”按钮'/>
<step id='13' value='*{操作名称}**{文件最大个数}**{文件单位}**{文件类型}*,点击“*{按钮名称}*”按钮'/>
</steps>
<excepts>
<except id='1' value='*{成功预期前文}**{信息}*创建成功,界面返回到列表页,其*{信息}*列表上显示新增的信息*{成功预期后文}*'/>
@ -322,15 +322,15 @@
<case name='addUploadFileCase'>
<steps>
<step id='1' value='不上传文件,点击“*{按钮名称}*”按钮'/>
<step id='2' 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='*{操作名称}*小于*{fileMin}**{s}**{mode}*,点击“*{按钮名称}*”按钮'/>
<step id='8' value='*{操作名称}**{fileMin}**{s}**{mode}*,点击“*{按钮名称}*”按钮'/>
<step id='9' value='*{操作名称}*大于*{fileMax}**{s}**{mode}*,点击“*{按钮名称}*”按钮'/>
<step id='10' value='*{操作名称}**{fileMax}**{s}**{mode}*,点击“*{按钮名称}*”按钮'/>
<step id='7' value='*{操作名称}*小于*{文件最小个数}**{文件单位}**{文件类型}*,点击“*{按钮名称}*”按钮'/>
<step id='8' value='*{操作名称}**{文件最小个数}**{文件单位}**{文件类型}*,点击“*{按钮名称}*”按钮'/>
<step id='9' value='*{操作名称}*大于*{文件最大个数}**{文件单位}**{文件类型}*,点击“*{按钮名称}*”按钮'/>
<step id='10' value='*{操作名称}**{文件最大个数}**{文件单位}**{文件类型}*,点击“*{按钮名称}*”按钮'/>
</steps>
<excepts>
<except id='1' value='*{成功预期前文}**{信息}*创建成功,界面返回到列表页,其*{信息}*列表上显示新增的信息*{成功预期后文}*'/>

View File

@ -1,7 +1,11 @@
package pres.auxiliary.work.n.tcase;
import java.io.File;
import java.util.HashMap;
import java.io.IOException;
import java.util.ArrayList;
import pres.auxiliary.work.testcase.change.Tab;
import pres.auxiliary.work.testcase.writecase.InputType;
/**
* <p><b>文件名</b>InformationCase.java</p>
@ -13,6 +17,7 @@ import java.util.HashMap;
* @since JDK 12
*/
public class InformationCase extends Case {
private final String BUTTON_NAME = "按钮名称";
/**
* 通过测试用例模板库的xml配置文件来构造InformationCase对象
@ -22,6 +27,130 @@ public class InformationCase extends Case {
super(configXmlFile);
}
/**
* 该方法用于生成针对文本框的测试用例
*
* @param name
* 文本框的名称
* @param isMust
* 是否必填
* @param isRepeat
* 是否可重复
* @param inputConfine
* 输入限制
* @param lengthConfine
* 输入长度限制
* @param numConfine
* 数字大小限制
* @return Tab对象
* @throws IOException
*/
public Tab addTextboxCase(String name, boolean isMust, boolean isRepeat, char[] inputConfine, int[] lengthConfine,
int[] numConfine) throws IOException {
//用于存储步骤
ArrayList<String> step = new ArrayList<>();
//用于存储预期
ArrayList<String> except = new ArrayList<>();
// 存储方法名
String methodName = "addTextboxCase";
// 存储需要使用的变量
textMap.put("name", name);
textMap.put("buttonName", getButtonName());
// 清空步骤与预期中存储的信息
// st.delete(0, st.length());
ex.delete(0, ex.length());
// 用于存储读取测试用例的id号
ArrayList<Integer> l = new ArrayList<>();
// 用于存储步骤数
int step = 1;
// 添加为空的步骤及预期
// st.append(step + ".不填写或只输入空格,点击“" + getButtonName() + "”按钮\r\n");
l.add(1);
// 判断文本框是否必填并添加相应的信息必填时信息为空则添加错误的预期
if (isMust) {
ex.append(step++ + "." + failExpectation.toString() + "\r\n");
} else {
ex.append(step++ + "." + successExpectation.toString() + "\r\n");
}
// 添加填写特殊字符
// st.append(step + ".填写特殊字符或HTML代码点击“" + getButtonName() + "”按钮\r\n");
l.add(2);
// 判断文本框是否包含特殊字符的限制若能输入特殊字符则添加正确的用例反之则添加失败的用例
if (inputConfine != null) {
// 用于判断inputConfine是否存在特殊字符的限制
boolean isSPE = false;
// 循环遍历inputConfine
for (char c : inputConfine) {
// 判断当前元素是否为Input.SPE若是则说明文本框允许输入输入特殊字符则将isSPE设为true并结束循环
if (Character.compare(c, InputType.SPE) == 0) {
isSPE = true;
break;
}
}
// 判断isSPE为true则添加正确的用例为false则添加失败的用例
if (isSPE) {
ex.append(step++ + "." + successExpectation.toString() + "\r\n");
}
else {
ex.append(step++ + "." + failExpectation.toString() + "\r\n");
}
} else {
// 如果没有输入限制则默认可以输入特殊字符
ex.append(step++ + "." + successExpectation.toString() + "\r\n");
}
// 添加输入限制的步骤没有限制则不添加
// 判断输入限制是否为null若不为null则添加输入限制步骤
if (inputConfine != null) {
String[] s = inputConfineStep(inputConfine);
textMap.put("charGroup", s[0]);
l.add(3);
// st.append(step + ".输入非" + s[0] + "字符,点击“" + getButtonName() + "”按钮\r\n");
ex.append(step++ + "." + s[1] + "\r\n");
}
// 添加长度限制的步骤没有则不添加
if (lengthConfine != null) {
String[] s = lengthConfineStep(lengthConfine, step, l);
// st.append(s[0]);
ex.append(s[0]);
step = Integer.valueOf(s[1]);
}
// 添加数字大小限制的步骤没有则不添加
if (numConfine != null) {
String[] s = numConfine(numConfine, step, l);
// st.append(s[0]);
ex.append(s[0]);
step = Integer.valueOf(s[1]);
}
if (!isRepeat) {
l.add(12);
// st.append(step + ".填写一个已存在的" + name + "信息,点击“" + getButtonName() +
// "”按钮\r\n");
ex.append(step++ + "." + failExpectation.toString() + "\r\n");
}
// 添加优先级信息
int rank = 2;
// 判断控件是否必填若必填则用例为1级
if (isMust) {
rank = 1;
}
int[] id = new int[l.size()];
for (int i = 0; i < l.size(); i++) {
id[i] = l.get(i);
}
return after(name, new StringBuilder(getStep(methodName, id)[0]), ex, rank);
}
}

Binary file not shown.