4e(?iGtZ3l5K_csCt5J^4a$q8#*OQqF-
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
+
+
-
-
-
@@ -29,13 +28,20 @@
-
-
-
+
+
+
+
+
-
+
+
+
+
+
+
diff --git a/Result/测试用例.xlsx b/Result/测试用例.xlsx
index 97bed0e0773eaf3887246531e54a9bbae9104845..9e7de3474c58921a85a01bf198e85b01805d4037 100644
GIT binary patch
literal 13095
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
BI!XWl
literal 5520
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
QBg4M#VT-+g0r%^F04p0c3jhEB
diff --git a/src/main/java/pres/auxiliary/tool/file/DisposeText.java b/src/main/java/pres/auxiliary/tool/file/DisposeText.java
index 390be22..35348e9 100644
--- a/src/main/java/pres/auxiliary/tool/file/DisposeText.java
+++ b/src/main/java/pres/auxiliary/tool/file/DisposeText.java
@@ -309,6 +309,10 @@ public class DisposeText {
Sheet sheet = excel.getSheetAt(0);
for (int i = 0; i < sheet.getLastRowNum(); i++) {
Row row = sheet.getRow(i);
+ //若获取不到行,则说明该行无数据,直接继续循环
+ if (row == null) {
+ continue;
+ }
for (int j = 0; j < row.getLastCellNum(); j++) {
try {
Cell cell = row.getCell(j);
diff --git a/src/main/java/pres/auxiliary/tool/readfile/ListFileRead.java b/src/main/java/pres/auxiliary/tool/readfile/ListFileRead.java
index 9f70d55..29c1ca8 100644
--- a/src/main/java/pres/auxiliary/tool/readfile/ListFileRead.java
+++ b/src/main/java/pres/auxiliary/tool/readfile/ListFileRead.java
@@ -297,6 +297,18 @@ public class ListFileRead {
public int getMaxColumnNumber() {
return maxColumnNum;
}
+
+ /**
+ * 返回制定列的元素个数
+ * @param columnIndex 列下标
+ * @return 相应列的长度
+ */
+ public int getCoulumnSize(int columnIndex) {
+ columnIndex = columnIndex >= maxColumnNum ? maxColumnNum : columnIndex;
+ columnIndex = columnIndex < 0 ? 0 : columnIndex;
+
+ return wordList.get(columnIndex).size();
+ }
/**
* 该方法用于读取并处理csv格式文件
diff --git a/src/main/java/pres/auxiliary/work/n/testcase/file/JiraTestCaseWrite.java b/src/main/java/pres/auxiliary/work/n/testcase/file/JiraTestCaseWrite.java
new file mode 100644
index 0000000..24adbab
--- /dev/null
+++ b/src/main/java/pres/auxiliary/work/n/testcase/file/JiraTestCaseWrite.java
@@ -0,0 +1,233 @@
+package pres.auxiliary.work.n.testcase.file;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Arrays;
+
+import pres.auxiliary.work.n.testcase.templet.LabelType;
+
+/**
+ * 文件名:JiraTestCaseWrite.java
+ * 用途:用于对上传jira测试用例模板,通过该类构造的用例文件,在使用测试用例
+ * 模板类写入用例时可以不用指定相应的字段关系。该类中包含部分个性的方法,以方便编写
+ * 测试用例
+ * 编码时间:2020年4月3日下午4:23:05
+ * 修改时间:2020年4月3日下午4:23:05
+ * @author 彭宇琦
+ * @version Ver1.0
+ * @since JDK 12
+ *
+ */
+public class JiraTestCaseWrite extends TestCaseWrite {
+ /**
+ * 通过测试文件模板xml配置文件和测试用例文件来构造WriteTestCase类。当配置文件中
+ * 只存在一个sheet标签时,则直接获取其对应sheet下所有column标签的id属性;若存在
+ * 多个sheet标签时,则读取第一个sheet标签,如需切换sheet标签,则可调用{@link #switchSheet(String)} 方法。
+ *
+ * @param configFile 测试文件模板xml配置文件类对象
+ * @param caseFile 测试用例文件类对象
+ * @throws IncorrectFileException 文件格式或路径不正确时抛出的异常
+ */
+ public JiraTestCaseWrite(File configFile, File caseFile) {
+ super(configFile, caseFile);
+
+ //TODO 添加与测试用例模板的关联,若测试用例模板字段有所改变,则在此改变关联字段
+ relevanceCase(JiraFieldIdType.STEP.getName(), LabelType.STEP.getName());
+ relevanceCase(JiraFieldIdType.EXCEPT.getName(), LabelType.EXCEPT.getName());
+ relevanceCase(JiraFieldIdType.PRECONDITION.getName(), LabelType.PRECONDITION.getName());
+ relevanceCase(JiraFieldIdType.PRIORITY.getName(), LabelType.RANK.getName());
+ relevanceCase(JiraFieldIdType.TITLE.getName(), LabelType.TITLE.getName());
+ }
+
+ /**
+ * 用于写入标题信息,由于标题唯一且不换行,故重复调用该方法时将覆盖原写入的内容。
+ * 写入的内容可以使用替换符,具体规则可以参见{@link #addContent(String, String...)}
+ * @param title 标题
+ * @return 类本身
+ */
+ public JiraTestCaseWrite addTitle(String title) {
+ //清除原有的内容
+ clearContent(JiraFieldIdType.TITLE.getName());
+ //重新将标题数据写入到用例中
+ addContent(JiraFieldIdType.TITLE.getName(), title);
+
+ return this;
+ }
+
+ /**
+ * 用于写入步骤信息
+ * @param stpes 步骤
+ * @return 类本身
+ */
+ public JiraTestCaseWrite addStep(String... steps) {
+ //写入步骤信息
+ addContent(JiraFieldIdType.STEP.getName(), steps);
+
+ return this;
+ }
+
+ /**
+ * 用于写入预期信息
+ * @param stpes 预期
+ * @return 类本身
+ */
+ public JiraTestCaseWrite addExcept(String... excepts) {
+ //写入预期信息
+ addContent(JiraFieldIdType.EXCEPT.getName(), excepts);
+
+ return this;
+ }
+
+ /**
+ * 由于步骤与预期是对应的,故可使用该方法写入一条步骤与预期信息
+ * @param step 步骤
+ * @param except 预期
+ * @return 类本身
+ */
+ public JiraTestCaseWrite addStepAndExcept(String step, String except) {
+ //写入步骤信息
+ addContent(JiraFieldIdType.STEP.getName(), step);
+ //写入预期信息
+ addContent(JiraFieldIdType.EXCEPT.getName(), except);
+
+ return this;
+ }
+
+ /**
+ * 用于根据数据有效性顺序选择相应的模块信息,重复调用该方法时将覆盖原写入的内容。
+ * @param index 模块对应的数据有效性选项
+ * @return 类本身
+ */
+ public JiraTestCaseWrite addFolder(int index) {
+ //清除原有的内容
+ clearContent(JiraFieldIdType.FOLDER.getName());
+ //由于传入的本身为数字,故可直接将数字转换成字符串后传入到addContent中
+ addContent(JiraFieldIdType.FOLDER.getName(), String.valueOf(index));
+
+ return this;
+ }
+
+ /**
+ * 根据关键词,匹配相应的模块信息,若未传入信息,则不写入信息,若能匹配信息,则会有以下三种情况:
+ *
+ * - 匹配一个结果,则直接存入结果
+ * - 匹配多个结果,则存入第一个命中的结果
+ * - 无匹配结果,则以“key1/key2/key3/.../keyN/”的形式拼接字符串
+ *
+ * 重复调用该方法时将覆盖原写入的内容。
+ * @param keys 关键词组
+ * @return 类本身
+ */
+ public JiraTestCaseWrite addFolder(String... keys) {
+ //清除原有的内容
+ clearContent(JiraFieldIdType.FOLDER.getName());
+
+ //若未传入关键词,则不填写信息
+ if (keys == null) {
+ return this;
+ }
+
+ //获取数据有效性
+ ArrayList dataList = fieldMap.get(JiraFieldIdType.FOLDER.getName()).matchDataValidation(keys);
+ //存储最终得到的模块信息
+ StringBuilder dataText = new StringBuilder();
+
+ //匹配模块信息,分为三种情况:
+ //1.命中一个结果,则直接存入结果
+ //2.命中多个结果,则存入第一个命中的结果
+ //3.未命中结果,则以“key1/key2/key3/.../keyN/”的形式拼接字符串
+
+ if (dataList.size() >= 1) {
+ dataText.append(dataList.get(0));
+ } else {
+ Arrays.stream(keys).forEach(text -> {
+ //拼接关键词
+ dataText.append("/" + text);
+ });
+ }
+
+ //写入得到的关键词
+ addContent(JiraFieldIdType.FOLDER.getName(), String.valueOf(dataText.toString()));
+ return this;
+ }
+
+ /**
+ * 文件名:JiraTestCaseWrite.java
+ * 用途:用于枚举出jira用例文件模板xml文件中所有字段
+ * 编码时间:2020年4月3日下午4:04:30
+ * 修改时间:2020年4月3日下午4:04:30
+ * @author 彭宇琦
+ * @version Ver1.0
+ * @since JDK 12
+ *
+ */
+ enum JiraFieldIdType {
+ /**
+ * 标题(Name)
+ */
+ TITLE("标题"),
+ /**
+ * 目的(Objective)
+ */
+ OBJECTIVE("目的"),
+ /**
+ * 前置条件(Precondition)
+ */
+ PRECONDITION("前置条件"),
+ /**
+ * 步骤(Test Script (Step-by-Step) - Step)
+ */
+ STEP("步骤"),
+ /**
+ * 预期(Test Script (Step-by-Step) - Expected Result)
+ */
+ EXCEPT("预期"),
+ /**
+ * 模块(Folder)
+ */
+ FOLDER("模块"),
+ /**
+ * 状态(Status)
+ */
+ STATUS("状态"),
+ /**
+ * 优先级(Priority)
+ */
+ PRIORITY("优先级"),
+ /**
+ * 项目(Component)
+ */
+ COMPONENT("项目"),
+ /**
+ * 设计者(Owner)
+ */
+ OWNER("设计者"),
+ /**
+ * 关联需求(Coverage (Issues))
+ */
+ ISSUES("关联需求"),
+ /**
+ * 关键用例
+ */
+ CASE_KEY("关键用例"),
+ ;
+ //用于存储枚举的名称
+ private String name = "";
+
+ /**
+ * 初始化枚举值
+ * @param value 枚举值
+ */
+ private JiraFieldIdType(String name) {
+ this.name = name;
+ }
+
+ /**
+ * 用于返回枚举中存储的内容,即jira用例文件模板中的字段ID
+ * @return 枚举值
+ */
+ public String getName() {
+ return name;
+ }
+ }
+}
diff --git a/src/main/java/pres/auxiliary/work/n/testcase/file/TestCaseWrite.java b/src/main/java/pres/auxiliary/work/n/testcase/file/TestCaseWrite.java
index 22d564a..636aac3 100644
--- a/src/main/java/pres/auxiliary/work/n/testcase/file/TestCaseWrite.java
+++ b/src/main/java/pres/auxiliary/work/n/testcase/file/TestCaseWrite.java
@@ -69,7 +69,7 @@ public class TestCaseWrite {
/**
* 用于存储一条用例的信息,第一个参数指向配置文件中的字段id,第二个字段为xml文件中字段的相应信息
*/
- private HashMap fieldMap = new HashMap<>(16);
+ HashMap fieldMap = new HashMap<>(16);
/**
* 用于存储所有用例均使用的字段常值
@@ -283,7 +283,6 @@ public class TestCaseWrite {
return this;
}
-
if (fieldMap.get(field).datas.size() != 0) {
//查找数据有效性,若当前字段存在数据有效性,则将数据有效性转义,若添加的字段无法转义,则存储原内容
contents = dataValidityChange(contents, fieldMap.get(field));
diff --git a/src/test/java/pres/auxiliary/tool/file/DisposeTextTest.java b/src/test/java/pres/auxiliary/tool/file/DisposeTextTest.java
index 41a776d..a367f02 100644
--- a/src/test/java/pres/auxiliary/tool/file/DisposeTextTest.java
+++ b/src/test/java/pres/auxiliary/tool/file/DisposeTextTest.java
@@ -33,4 +33,15 @@ public class DisposeTextTest {
bw.close();
}
+
+ @Test
+ public void getFloder() throws IOException {
+ BufferedWriter bw = new BufferedWriter(new FileWriter(new File("D:\\8.test\\FloderInformation.txt")));
+ for (String text : DisposeText.wordDelDuplication(new File("D:\\8.test\\kanoahtests-tests-export1018607237477323352.xlsx"))) {
+ bw.write(text);
+ bw.newLine();
+ }
+
+ bw.close();
+ }
}
diff --git a/src/test/java/pres/auxiliary/work/testcase/WriteTestCaseTest.java b/src/test/java/pres/auxiliary/work/testcase/WriteTestCaseTest.java
index dfea267..15fbe5c 100644
--- a/src/test/java/pres/auxiliary/work/testcase/WriteTestCaseTest.java
+++ b/src/test/java/pres/auxiliary/work/testcase/WriteTestCaseTest.java
@@ -44,7 +44,7 @@ public class WriteTestCaseTest {
/**
* 配置文件类对象
*/
- File conFile = new File("src/test/java/pres/auxiliary/work/testcase/jira测试用例导入模板.xml");
+ File conFile = new File("ConfigurationFiles/CaseConfigurationFile/FileTemplet/JiraCaseFileTemplet/jira测试用例导入模板.xml");
/**
* 模板文件类对象
*/
@@ -121,6 +121,11 @@ public class WriteTestCaseTest {
wtc.addCase(ic.addRadioButtonCase("测试控件")).end();
}
+ @Test
+ public void test() {
+ System.out.println(String.valueOf(System.currentTimeMillis()).length());
+ }
+
/**
* 测试{@link TestCaseWrite#setReplactWord(String, String)}方法
diff --git a/src/test/java/pres/auxiliary/work/testcase/jira测试用例导入模板.xml b/src/test/java/pres/auxiliary/work/testcase/jira测试用例导入模板.xml
deleted file mode 100644
index 19d0803..0000000
--- a/src/test/java/pres/auxiliary/work/testcase/jira测试用例导入模板.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file