diff --git a/ConfigurationFiles/CaseConfigurationFile/CaseTemplet/AddInformation.xml b/ConfigurationFiles/CaseConfigurationFile/CaseTemplet/AddInformation.xml
index ccd1782..803d5af 100644
--- a/ConfigurationFiles/CaseConfigurationFile/CaseTemplet/AddInformation.xml
+++ b/ConfigurationFiles/CaseConfigurationFile/CaseTemplet/AddInformation.xml
@@ -1,186 +1,406 @@
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
-
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
-
-
-
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
-
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ConfigurationFiles/CaseConfigurationFile/CaseTemplet/BrowseList.xml b/ConfigurationFiles/CaseConfigurationFile/CaseTemplet/BrowseList.xml
index 3636769..1df5308 100644
--- a/ConfigurationFiles/CaseConfigurationFile/CaseTemplet/BrowseList.xml
+++ b/ConfigurationFiles/CaseConfigurationFile/CaseTemplet/BrowseList.xml
@@ -1,6 +1,6 @@
-
+
@@ -23,7 +23,7 @@
-
+
@@ -48,7 +48,7 @@
-
+
@@ -69,7 +69,7 @@
-
+
@@ -92,7 +92,7 @@
-
+
@@ -117,7 +117,7 @@
-
+
@@ -136,7 +136,7 @@
-
+
@@ -159,7 +159,7 @@
-
+
@@ -177,7 +177,7 @@
-
+
@@ -192,7 +192,7 @@
-
+
diff --git a/ConfigurationFiles/CaseConfigurationFile/CaseTemplet/Map.xml b/ConfigurationFiles/CaseConfigurationFile/CaseTemplet/Map.xml
index 23f2aaa..5088915 100644
--- a/ConfigurationFiles/CaseConfigurationFile/CaseTemplet/Map.xml
+++ b/ConfigurationFiles/CaseConfigurationFile/CaseTemplet/Map.xml
@@ -1,6 +1,6 @@
-
+
@@ -26,7 +26,7 @@
-
+
@@ -43,7 +43,7 @@
-
+
@@ -64,7 +64,7 @@
-
+
@@ -87,7 +87,7 @@
-
+
diff --git a/ConfigurationFiles/CaseConfigurationFile/CaseTemplet/Username.xml b/ConfigurationFiles/CaseConfigurationFile/CaseTemplet/Username.xml
index 9a6c1c3..6395db6 100644
--- a/ConfigurationFiles/CaseConfigurationFile/CaseTemplet/Username.xml
+++ b/ConfigurationFiles/CaseConfigurationFile/CaseTemplet/Username.xml
@@ -1,6 +1,6 @@
-
+
@@ -14,7 +14,7 @@
-
+
@@ -36,7 +36,7 @@
-
+
@@ -55,7 +55,7 @@
-
+
@@ -72,7 +72,7 @@
-
+
@@ -100,7 +100,7 @@
-
+
@@ -122,7 +122,7 @@
-
+
@@ -146,7 +146,7 @@
-
+
@@ -172,7 +172,7 @@
-
+
diff --git a/ConfigurationFiles/CaseConfigurationFile/CaseTemplet/Video.xml b/ConfigurationFiles/CaseConfigurationFile/CaseTemplet/Video.xml
index 29017d0..a6f9598 100644
--- a/ConfigurationFiles/CaseConfigurationFile/CaseTemplet/Video.xml
+++ b/ConfigurationFiles/CaseConfigurationFile/CaseTemplet/Video.xml
@@ -1,6 +1,6 @@
-
+
@@ -24,7 +24,7 @@
-
+
@@ -44,7 +44,7 @@
-
+
@@ -76,7 +76,7 @@
-
+
@@ -96,7 +96,7 @@
-
+
@@ -117,7 +117,7 @@
-
+
diff --git a/ConfigurationFiles/CaseConfigurationFile/CaseTemplet.xml b/ConfigurationFiles/CaseConfigurationFile/FileTemplet/CaseTemplet.xml
similarity index 100%
rename from ConfigurationFiles/CaseConfigurationFile/CaseTemplet.xml
rename to ConfigurationFiles/CaseConfigurationFile/FileTemplet/CaseTemplet.xml
diff --git a/ConfigurationFiles/NewCaseConfigurationFile/jira娴嬭瘯鐢ㄤ緥瀵煎叆妯℃澘.xml b/ConfigurationFiles/CaseConfigurationFile/FileTemplet/jira娴嬭瘯鐢ㄤ緥瀵煎叆妯℃澘.xml
similarity index 100%
rename from ConfigurationFiles/NewCaseConfigurationFile/jira娴嬭瘯鐢ㄤ緥瀵煎叆妯℃澘.xml
rename to ConfigurationFiles/CaseConfigurationFile/FileTemplet/jira娴嬭瘯鐢ㄤ緥瀵煎叆妯℃澘.xml
diff --git a/src/main/java/pres/auxiliary/work/n/tcase/AbstractCase.java b/src/main/java/pres/auxiliary/work/n/tcase/AbstractCase.java
deleted file mode 100644
index 16cfaf0..0000000
--- a/src/main/java/pres/auxiliary/work/n/tcase/AbstractCase.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package pres.auxiliary.work.n.tcase;
-
-public abstract class AbstractCase {
-
-}
diff --git a/src/main/java/pres/auxiliary/work/n/tcase/Case.java b/src/main/java/pres/auxiliary/work/n/tcase/Case.java
new file mode 100644
index 0000000..f1055ed
--- /dev/null
+++ b/src/main/java/pres/auxiliary/work/n/tcase/Case.java
@@ -0,0 +1,233 @@
+package pres.auxiliary.work.n.tcase;
+
+import java.io.File;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+
+import org.dom4j.Document;
+import org.dom4j.DocumentException;
+import org.dom4j.Element;
+import org.dom4j.io.SAXReader;
+
+/**
+ * 鏂囦欢鍚嶏細AbstractCase.java
+ * 鐢ㄩ旓細瀹氫箟娴嬭瘯鐢ㄤ緥妯℃澘绫昏兘杩斿洖鐨勫熀鏈瓧娈碉紝鎻愪緵鍏剁浉搴旂殑get涓巗et鏂规硶锛屼絾璇ユ柟娉曚笉鍏佽鍖呭璋冪敤
+ * 缂栫爜鏃堕棿锛2020骞3鏈3鏃ヤ笅鍗8:07:23
+ * 淇敼鏃堕棿锛2020骞3鏈4鏃 07:39:23
+ * @author 褰畤鐞
+ * @version Ver1.0
+ * @since JDK 12
+ *
+ */
+public abstract class Case {
+
+ /**
+ * 姝ラ
+ */
+ private String[] step;
+
+ /**
+ * 棰勬湡
+ */
+ private String[] except;
+
+ /**
+ * 鏍囬
+ */
+ private String title;
+
+ /**
+ * 鍏抽敭璇
+ */
+ private String keyWord;
+
+ /**
+ * 鍓嶇疆鏉′欢
+ */
+ private String[] precondition;
+
+ /**
+ * 鐢ㄤ簬瀛樺偍闇瑕佹浛鎹㈢殑璇嶈鐨勫紑濮嬫爣璁
+ */
+ final String START_SIGN = "*{";
+ /**
+ * 鐢ㄤ簬瀛樺偍闇瑕佹浛鎹㈢殑璇嶈鐨勭粨鏉熸爣璁
+ */
+ final String END_SIGN = "}*";
+
+ /**
+ * 浼樺厛绾
+ */
+ private int rank;
+
+ /**
+ * 鐢ㄤ簬鎸囧悜娴嬭瘯鐢ㄤ緥xml鏂囦欢鐨凞ocument瀵硅薄
+ */
+ Document configXml;
+
+ /**
+ * 瀛樺偍xml鏂囦欢涓叾闇瑕佹浛鎹㈢殑璇嶈
+ */
+ HashMap textMap = new HashMap();
+
+ /**
+ * 鏍规嵁鐢ㄤ緥xml鏂囦欢鏉ユ瀯閫燙ase绫
+ * @param configXmlFile xml閰嶇疆鏂囦欢
+ * @throws IncorrectFileException 鏂囦欢鏍煎紡鎴栬矾寰勪笉姝g‘鏃舵姏鍑虹殑寮傚父
+ */
+ @SuppressWarnings("unchecked")
+ public Case(File configXmlFile) {
+ // 鍒ゆ柇浼犲叆鐨刢onfigurationFile鏄惁涓轰竴涓枃浠剁被瀵硅薄锛岃嫢闈炴枃浠剁被瀵硅薄锛屽垯鎶涘嚭寮傚父
+ try {
+ configXml = new SAXReader().read(configXmlFile);
+ } catch (DocumentException e) {
+ throw new IncorrectFileException("鐢ㄤ緥xml鏂囦欢鏈夎" );
+ }
+
+ //鑾峰彇xml涓寘鍚玽alue鐨勫厓绱狅紝骞跺皢鍏朵腑鍖呭惈闇瑕佹浛鎹㈢殑璇嶈瀛樺偍鑷硉extMap\
+ List textElement = configXml.selectNodes("//*[@value]");
+ textElement.stream().
+ //鑾峰彇鍏冪礌鐨剉alue灞炴э紝灏嗗叾杞崲涓烘枃鏈璞
+ map(e -> e.attributeValue("value")).
+ //绛涢夊寘鍚*{鐨勬枃鏈
+ filter(e -> e.indexOf("*{") > -1).forEach(e -> {
+ //瀵规枃鏈寜鐓*{鍒囧壊锛屽苟绛涢夊寘鍚珆*鐨勬枃鏈
+ Arrays.asList(e.split("\\*\\{")).stream().filter(s -> s.indexOf("}*") > -1).
+ forEach(s -> {
+ //灏嗛渶瑕佸瓨鍌ㄧ殑鏇挎崲璇嶈瀛樺叆textMap涓
+ textMap.put(s.substring(0, s.indexOf("}*")), "");
+ });
+ });
+ }
+
+ /**
+ * 杩斿洖姝ラ鏂囨湰
+ * @return 姝ラ鏂囨湰
+ */
+ public String[] getStep() {
+ return step;
+ }
+
+ /**
+ * 鏍规嵁璋冪敤鏂规硶鐨勪笉鍚岃缃浉搴旂殑姝ラ鏂囨湰
+ * @param step 姝ラ鏂囨湰
+ */
+ void setStep(String[] step) {
+ this.step = step;
+ }
+
+ /**
+ * 杩斿洖棰勬湡鏂囨湰
+ * @return 棰勬湡鏂囨湰
+ */
+ public String[] getExcept() {
+ return except;
+ }
+
+ /**
+ * 鏍规嵁璋冪敤鏂规硶鐨勪笉鍚岃缃浉搴旂殑棰勬湡鏂囨湰
+ * @param except 棰勬湡鏂囨湰
+ */
+ void setExcept(String[] except) {
+ this.except = except;
+ }
+
+ /**
+ * 杩斿洖鏍囬鏂囨湰
+ * @return 鏍囬鏂囨湰
+ */
+ public String getTitle() {
+ return title;
+ }
+
+ /**
+ * 鏍规嵁璋冪敤鏂规硶鐨勪笉鍚岃缃浉搴旂殑鏍囬鏂囨湰
+ * @param title 鏍囬鏂囨湰
+ */
+ void setTitle(String title) {
+ this.title = title;
+ }
+
+ /**
+ * 杩斿洖鍏抽敭璇嶆枃鏈
+ * @return 鍏抽敭璇嶆枃鏈
+ */
+ public String getKeyWord() {
+ return keyWord;
+ }
+
+ /**
+ * 鏍规嵁璋冪敤鏂规硶鐨勪笉鍚岃缃浉搴旂殑鍏抽敭璇嶆枃鏈
+ * @param keyWord 鍏抽敭璇嶆枃鏈
+ */
+ void setKeyWord(String keyWord) {
+ this.keyWord = keyWord;
+ }
+
+ /**
+ * 杩斿洖鍏抽敭璇嶆枃鏈
+ * @return 鍏抽敭璇嶆枃鏈
+ */
+ public String[] getPrecondition() {
+ return precondition;
+ }
+
+ /**
+ * 鏍规嵁璋冪敤鏂规硶鐨勪笉鍚岃缃浉搴旂殑鍓嶇疆鏉′欢鏂囨湰
+ * @param keyWord 鍓嶇疆鏉′欢鏂囨湰
+ */
+ void setPrecondition(String[] precondition) {
+ this.precondition = precondition;
+ }
+
+ /**
+ * 杩斿洖浼樺厛绾ф枃鏈
+ * @return 浼樺厛绾ф枃鏈
+ */
+ public int getRank() {
+ return rank;
+ }
+
+ /**
+ * 鏍规嵁璋冪敤鏂规硶鐨勪笉鍚岃缃浉搴旂殑浼樺厛绾ф枃鏈
+ * @param keyWord 浼樺厛绾ф枃鏈
+ */
+ void setRank(int rank) {
+ this.rank = rank;
+ }
+
+ /**
+ * 鐢ㄤ簬璁剧疆闇瑕佹浛鎹㈢殑璇嶈
+ * @param word 娴嬭瘯鐢ㄤ緥xml搴撲腑闇瑕佹浛鎹㈢殑璇嶈
+ * @param value 琚浛鎹㈢殑璇嶈
+ */
+ public void setReplaceWord(String word, String value) {
+ //鍒ゆ柇璇ヨ瘝璇槸鍚﹀瓨鍦ㄤ簬textMap涓紝鑻ヤ笉瀛樺湪锛屽垯鎶涘嚭寮傚父
+ if (!textMap.containsKey(word)) {
+ throw new IncorrectFileException("鏈壘鍒伴渶瑕佹浛鎹㈢殑璇嶈锛" + word);
+ }
+ //瀛樺偍鏇挎崲鐨勮瘝璇
+ textMap.put(word, value);
+ }
+
+ /**
+ * 鐢ㄤ簬鏇挎崲鏂囨湰涓渶瑕佹浛鎹㈢殑鍗曡瘝锛岃繑鍥炴浛鎹㈠悗鐨勬枃鏈
+ * @param text 闇瑕佹浛鎹㈢殑鏂囨湰
+ * @return 鏇挎崲鍚庣殑鏂囨湰
+ */
+ String replaceText(String text) {
+ StringBuilder sb = new StringBuilder(text);
+ //瀛樺偍鏇挎崲绗︾殑浣嶇疆
+ int index = 0;
+ //寰幆锛屾浛鎹ontent涓墍鏈夐渶瑕佹浛鎹㈢殑淇℃伅
+ while( (index = sb.indexOf(START_SIGN)) != -1 ) {
+ //瀛樺偍寰呮浛鎹㈢殑鍙橀噺鍚
+ String var = sb.substring(index + START_SIGN.length(), sb.indexOf(END_SIGN));
+ //鏇挎崲璇ュ彉閲忓悕
+ sb.replace(index, sb.indexOf(END_SIGN) + END_SIGN.length(), textMap.get(var));
+ }
+
+ return sb.toString();
+ }
+}
diff --git a/src/main/java/pres/auxiliary/work/n/tcase/DataListCase.java b/src/main/java/pres/auxiliary/work/n/tcase/DataListCase.java
new file mode 100644
index 0000000..452689d
--- /dev/null
+++ b/src/main/java/pres/auxiliary/work/n/tcase/DataListCase.java
@@ -0,0 +1,15 @@
+package pres.auxiliary.work.n.tcase;
+
+/**
+ * 鏂囦欢鍚嶏細DataListCase.java
+ * 鐢ㄩ旓細鐢ㄤ簬鐢熸垚鏁版嵁鍒楄〃鐩稿叧鐨勬祴璇曠敤渚
+ * 缂栫爜鏃堕棿锛2020骞3鏈3鏃ヤ笅鍗8:25:33
+ * 淇敼鏃堕棿锛2020骞3鏈3鏃ヤ笅鍗8:25:33
+ * @author
+ * @version Ver1.0
+ * @since JDK 12
+ *
+ */
+public class DataListCase extends Case {
+
+}
diff --git a/src/main/java/pres/auxiliary/work/n/tcase/InformationCase.java b/src/main/java/pres/auxiliary/work/n/tcase/InformationCase.java
new file mode 100644
index 0000000..63ada04
--- /dev/null
+++ b/src/main/java/pres/auxiliary/work/n/tcase/InformationCase.java
@@ -0,0 +1,27 @@
+package pres.auxiliary.work.n.tcase;
+
+import java.io.File;
+import java.util.HashMap;
+
+/**
+ * 鏂囦欢鍚嶏細InformationCase.java
+ * 鐢ㄩ旓細鐢ㄤ簬杈撳嚭涓庨〉闈㈡柊澧炴垨缂栬緫淇℃伅鐩稿叧鐨勭敤渚
+ * 缂栫爜鏃堕棿锛2020骞3鏈5鏃ヤ笂鍗8:30:12
+ * 淇敼鏃堕棿锛2020骞3鏈5鏃ヤ笂鍗8:30:12
+ * @author 褰畤鐞
+ * @version Ver1.0
+ * @since JDK 12
+ */
+public class InformationCase extends Case {
+
+ /**
+ * 閫氳繃娴嬭瘯鐢ㄤ緥妯℃澘搴撶殑xml閰嶇疆鏂囦欢鏉ユ瀯閫營nformationCase瀵硅薄
+ * @param configXmlFile 鐢ㄤ緥妯℃澘搴撶殑xml鏂囦欢瀵硅薄
+ */
+ public InformationCase(File configXmlFile) {
+ super(configXmlFile);
+ }
+
+
+
+}
diff --git a/src/main/java/pres/auxiliary/work/n/tcase/WriteTestCase.java b/src/main/java/pres/auxiliary/work/n/tcase/WriteTestCase.java
index df7cc5a..70f87e2 100644
--- a/src/main/java/pres/auxiliary/work/n/tcase/WriteTestCase.java
+++ b/src/main/java/pres/auxiliary/work/n/tcase/WriteTestCase.java
@@ -43,7 +43,7 @@ import org.dom4j.io.SAXReader;
* 缂栫爜鏃堕棿锛2020骞2鏈17鏃ヤ笅鍗9:36:00
*
*
- * 淇敼鏃堕棿锛2020骞2鏈17鏃ヤ笅鍗9:36:00
+ * 淇敼鏃堕棿锛2020骞3鏈3鏃ヤ笅鍗8:07:23
*
*
* @author 褰畤鐞
@@ -107,19 +107,16 @@ public class WriteTestCase {
* 鍙瓨鍦ㄤ竴涓猻heet鏍囩鏃讹紝鍒欑洿鎺ヨ幏鍙栧叾瀵瑰簲sheet涓嬫墍鏈塩olumn鏍囩鐨刬d灞炴э紱鑻ュ瓨鍦
* 澶氫釜sheet鏍囩鏃讹紝鍒欒鍙栫涓涓猻heet鏍囩锛屽闇鍒囨崲sheet鏍囩锛屽垯鍙皟鐢▄@link #switchSheet(String)} 鏂规硶銆
*
- * @param configurationFile 娴嬭瘯鏂囦欢妯℃澘xml閰嶇疆鏂囦欢绫诲璞
+ * @param configFile 娴嬭瘯鏂囦欢妯℃澘xml閰嶇疆鏂囦欢绫诲璞
* @param caseFile 娴嬭瘯鐢ㄤ緥鏂囦欢绫诲璞
- * @throws DocumentException xml鏂囦欢鍐呭涓嶆纭椂鎶涘嚭鐨勫紓甯
* @throws IncorrectFileException 鏂囦欢鏍煎紡鎴栬矾寰勪笉姝g‘鏃舵姏鍑虹殑寮傚父
*/
- public WriteTestCase(File configurationFile, File caseFile) throws DocumentException {
- // 鍒ゆ柇浼犲叆鐨刢onfigurationFile鏄惁涓轰竴涓枃浠剁被瀵硅薄锛岃嫢闈炴枃浠剁被瀵硅薄锛屽垯鎶涘嚭寮傚父锛坕sFile()鏂规硶鍖呭惈鍒ゆ柇鏂囦欢鏄惁瀛樺湪锛
- // 鍐嶅垽鏂枃浠舵槸鍚﹀寘鍚枃浠惰矾寰勬槸鍚﹀寘鍚.xml鈥
- if (configurationFile.isFile() && configurationFile.getAbsolutePath().indexOf(".xml") > -1) {
- // 璇诲彇xml鏂囦欢鐨勪俊鎭
- configXml = new SAXReader().read(configurationFile);
- } else {
- throw new IncorrectFileException("涓嶆纭殑鏂囦欢鏍煎紡锛" + configurationFile.getAbsolutePath());
+ public WriteTestCase(File configFile, File caseFile) {
+ // 鍒ゆ柇浼犲叆鐨刢onfigurationFile鏄惁涓轰竴涓枃浠剁被瀵硅薄锛岃嫢闈炴枃浠剁被瀵硅薄锛屽垯鎶涘嚭寮傚父
+ try {
+ configXml = new SAXReader().read(configFile);
+ } catch (DocumentException e) {
+ throw new IncorrectFileException("鐢ㄤ緥xml鏂囦欢鏈夎" );
}
// 鑾峰彇xml鏂囦欢涓殑绗竴涓猻heet鏍囩锛屽垯灏嗚鏍囩鐨刵ame灞炴у唴瀹逛紶鍏etColumnId涓