添加jira用例模板的特性方法

This commit is contained in:
彭宇琦 2020-04-03 19:54:42 +08:00
parent 791ebc0a0b
commit 846dabb1ad
11 changed files with 482 additions and 210 deletions

View File

@ -1,202 +1,257 @@
<?xml version="1.0" encoding="GBK"?>
<?xml version="1.0" encoding="UTF-8"?>
<cases project="Username">
<case name="addRightLoginCase">
<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>
<step id="1" value="正确输入用户名及密码,登录" />
<step id="1" value="正确输入用户名及密码,登录" />
</steps>
<expectations>
<expectation id="1" value="能正常登录系统,且登陆后跳转的页面正确"/>
</expectations>
<excepts>
<except id="1" value="能正常登录系统,且登陆后跳转的页面正确" />
</excepts>
</case>
<case name="addErrorLoginCase">
<title value="通过非常规的用户名与密码进行登录" />
<keyword value="不正确的,用户名,密码,登录" />
<rank value="2" />
<case name="addErrorLogkinCase">
<titles>
<title id='1' value="通过非常规的用户名与密码进行登录" />
</titles>
<keys>
<key id='1' value="不正确的,用户名,密码,登录" />
</keys>
<ranks>
<rank id='1' value="2" />
</ranks>
<preconditions>
</preconditions>
<steps>
<step id="1" value="输入一个不存在的用户名及密码,登录" />
<step id="2" value="输入一个存在的用户名但密码输入与其不对应,登录" />
<step id="3" value="不输入用户名,登录" />
<step id="4" value="不输入密码,登录" />
<step id="5" 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="addCaptchaCase">
<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="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="addLoginAuthorityCase">
<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="1" value="输入不同权限的帐号和密码,登录" />
<step id="2" value="在所有登录页面上输入与之权限不对应的帐号,登录" />
</steps>
<expectations>
<expectation id="1" value="能正常登录系统,且登陆后能看到权限对应的页面及功能"/>
<expectation id="2" value="无法登录,并给出相应的提示"/>
</expectations>
<excepts>
<except id="1" value="能正常登录系统,且登陆后能看到权限对应的页面及功能" />
<except id="2" value="无法登录,并给出相应的提示" />
</excepts>
</case>
<case name="addUsernameRegisterCase">
<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 value="除用户名外,其他信息均正确填写" />
<precondition id='1' value="已在注册账号界面" />
<precondition id='2' value="除用户名外,其他信息均正确填写" />
</preconditions>
<steps>
<step id="1" value="通过一个未被注册且正确的用户名进行注册操作" />
<step id="2" value="通过一个已注册的用户名进行注册操作" />
<step id="3" value="输入一个大于11位的数字字符进行注册操作" />
<step id="4" value="输入一个小于11位的数字字符进行注册操作" />
<step id="5" value="输入非数字字符进行注册操作" />
<step id="6" value="通过一个不符合要求的用户名进行注册操作" />
<step id="7" value="不输入用户名进行注册操作" />
<step id="1" value="通过一个未被注册且正确的用户名进行注册操作" />
<step id="2" value="通过一个已注册的用户名进行注册操作" />
<step id="3" value="输入一个大于11位的数字字符进行注册操作" />
<step id="4" value="输入一个小于11位的数字字符进行注册操作" />
<step id="5" value="输入非数字字符进行注册操作" />
<step id="6" value="通过一个不符合要求的用户名进行注册操作" />
<step id="7" 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="addUsernameForgetCase">
<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 value="除用户名外,其他信息均正确填写" />
<precondition id='1' value="已在忘记密码界面" />
<precondition id='2' value="除用户名外,其他信息均正确填写" />
</preconditions>
<steps>
<step id="1" value="通过一个已存在且正确的用户名进行忘记密码操作" />
<step id="2" value="通过一个不存在的用户名进行忘记密码操作" />
<step id="3" value="通过一个不符合要求的用户名进行忘记密码操作" />
<step id="4" value="不输入用户名进行忘记密码操作" />
<step id="1" value="通过一个已存在且正确的用户名进行忘记密码操作" />
<step id="2" value="通过一个不存在的用户名进行忘记密码操作" />
<step id="3" value="通过一个不符合要求的用户名进行忘记密码操作" />
<step id="4" 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="提示请输入用户名" />
</excepts>
</case>
<case name="addPasswordRegisterOrForgetCase">
<title value="通过不同的密码进行*{operation}*操作" />
<keyword value="密码,*{operation}*" />
<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="已在*{operation}*账号界面" />
<precondition value="除密码外,其他信息均正确填写" />
<precondition id='1' value="已在*{操作类型}*账号界面" />
<precondition id='2' value="除密码外,其他信息均正确填写" />
</preconditions>
<steps>
<step id="1" value="通过正确的密码进行*{operation}*操作" />
<step id="2" value="通过一个不符合要求的密码进行*{operation}*操作" />
<step id="3" value="不输入密码进行*{operation}*操作" />
<step id="4" value="不再次输入密码,*{operation}*操作" />
<step id="5" value="两次密码输入不一致后进行*{operation}*操作" />
<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="*{operation}*操作完成后能通过该帐号及对应的密码进行登录"/>
<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="addCodeRegisterOrForgetCase">
<title value="通过不同的验证码进行*{operation}*操作" />
<keyword value="验证码,*{operation}*" />
<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="已在*{operation}*账号界面" />
<precondition value="除密码外,其他信息均正确填写" />
<precondition id='1' value="已在*{操作类型}*账号界面" />
<precondition id='2' value="除密码外,其他信息均正确填写" />
</preconditions>
<steps>
<step id="1" value="通过正确的验证码进行*{operation}*" />
<step id="2" value="通过一个不正确的验证码进行*{operation}*" />
<step id="3" value="不输入验证码进行*{operation}*" />
<step id="4" value="重新发送验证码后输入上一次的验证码" />
<step id="5" value="重新发送验证码后输入新的验证码" />
<step id="6" value="超过验证码的过期时间后再输入验证码,*{operation}*" />
<step id="1" value="通过正确的验证码进行*{操作类型}*" />
<step id="2" value="通过一个不正确的验证码进行*{操作类型}*" />
<step id="3" value="不输入验证码进行*{操作类型}*" />
<step id="4" value="重新发送验证码后输入上一次的验证码" />
<step id="5" value="重新发送验证码后输入新的验证码" />
<step id="6" value="超过验证码的过期时间后再输入验证码,*{操作类型}*" />
</steps>
<expectations>
<expectation id="1" value="*{operation}*操作完成后能通过该帐号及对应的密码进行登录"/>
<expectation id="2" value="提示验证码不正确"/>
<expectation id="3" value="提示请输入验证码"/>
<expectation id="4" value="提示验证码输入有误"/>
<expectation id="5" value="*{operation}*操作完成后能通过该帐号及对应的密码进行登录"/>
<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="addAlterPasswordCase">
<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 value="除密码外,其他信息均正确填写" />
<precondition id='1' value="已登录系统" />
<precondition id='2' 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="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="两次密码输入不一致后进行修改密码" />
</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>
</cases>

View File

@ -5,14 +5,13 @@
<column id='标题' name='Name' wide='30.88' align='left'/>
<column id='目的' name='Objective' wide='18.25' align='left'/>
<column id='前置条件' name='Precondition' wide='18.25' align='left' index='true'/>
<column id='步骤' name='Test Script (Step-by-Step) - Step' wide='45.75' align='left' row_text='1' index='true'/>
<column id='预期' name='Test Script (Step-by-Step) - Expected Result' wide='45.75' align='left' row_text='1' index='true'/>
<column id='模块' name='Folder' wide='22.00' align='center'/>
<column id='状态' name='Status' wide='10.00' align='center'/>
<column id='优先级' name='Priority' wide='10.00' align='center'/>
<column id='项目' name='Component' wide='10.00' align='center'/>
<column id='设计者' name='Owner' wide='10.00' align='center'/>
<column id='步骤' name='Test Script (Step-by-Step) - Step' wide='45.75' align='left' row_text='1' index='true'/>
<column id='预期' name='Expected Test Script (Step-by-Step) - Expected Result' wide='45.75' align='left' row_text='1' index='true'/>
<column id='步骤' name='Test Script (Step-by-Step) - Step' wide='45.75' align='left' row_text='1' index='true'/>
<column id='关键用例' name='关键用例' wide='10.00' align='center'/>
<column id='关联需求' name='Coverage (Issues)' wide='20.00' align='center'/>
@ -29,13 +28,20 @@
</datas>
<datas id='项目'>
<data name='High' />
<data name='Normal' />
<data name='Low' />
<file path='ConfigurationFiles/CaseConfigurationFile/FileTemplet/JiraCaseFileTemplet/Jira数据有效性.xlsx' regex='Sheet1' column='0' start_row='1' />
</datas>
<datas id='关联需求'>
<file path='ConfigurationFiles/CaseConfigurationFile/FileTemplet/JiraCaseFileTemplet/Jira数据有效性.xlsx' regex='Sheet1' column='1' start_row='1' />
</datas>
<datas id='模块'>
<file path='Test/ListDataFile/模块信息.xlsx' regex='Sheet1' column='2' start_row='2' end_row='11' />
<file path='ConfigurationFiles/CaseConfigurationFile/FileTemplet/JiraCaseFileTemplet/Jira数据有效性.xlsx' regex='Sheet1' column='2' start_row='1' />
</datas>
<datas id='关键用例'>
<data name='是' />
<data name='否' />
</datas>
</sheet>

Binary file not shown.

View File

@ -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);

View File

@ -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格式文件

View File

@ -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;
/**
* <p><b>文件名</b>JiraTestCaseWrite.java</p>
* <p><b>用途</b>用于对上传jira测试用例模板通过该类构造的用例文件在使用测试用例
* 模板类写入用例时可以不用指定相应的字段关系该类中包含部分个性的方法以方便编写
* 测试用例</p>
* <p><b>编码时间</b>2020年4月3日下午4:23:05</p>
* <p><b>修改时间</b>2020年4月3日下午4:23:05</p>
* @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;
}
/**
* 根据关键词匹配相应的模块信息若未传入信息则不写入信息若能匹配信息则会有以下三种情况
* <ol>
* <li>匹配一个结果则直接存入结果</li>
* <li>匹配多个结果则存入第一个命中的结果</li>
* <li>无匹配结果则以key1/key2/key3/.../keyN/的形式拼接字符串</li>
* </ol>
* 重复调用该方法时将覆盖原写入的内容
* @param keys 关键词组
* @return 类本身
*/
public JiraTestCaseWrite addFolder(String... keys) {
//清除原有的内容
clearContent(JiraFieldIdType.FOLDER.getName());
//若未传入关键词则不填写信息
if (keys == null) {
return this;
}
//获取数据有效性
ArrayList<String> 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;
}
/**
* <p><b>文件名</b>JiraTestCaseWrite.java</p>
* <p><b>用途</b>用于枚举出jira用例文件模板xml文件中所有字段</p>
* <p><b>编码时间</b>2020年4月3日下午4:04:30</p>
* <p><b>修改时间</b>2020年4月3日下午4:04:30</p>
* @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;
}
}
}

View File

@ -69,7 +69,7 @@ public class TestCaseWrite {
/**
* 用于存储一条用例的信息第一个参数指向配置文件中的字段id第二个字段为xml文件中字段的相应信息
*/
private HashMap<String, Field> fieldMap = new HashMap<>(16);
HashMap<String, Field> 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));

View File

@ -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();
}
}

View File

@ -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)}方法

View File

@ -1,53 +0,0 @@
<?xml version='1.0' encoding='UTF-8'?>
<templet>
<!-- id控制sheet的代号name表示文件中sheet的名称freeze表示需要冻结的前几列 -->
<sheet name='测试用例' freeze='2'>
<column id='标题' name='Name' wide='30.88' align='left'/>
<column id='目的' name='Objective' wide='18.25' align='left'/>
<column id='前置条件' name='Precondition' wide='18.25' align='left' index='true'/>
<column id='模块' name='Folder' wide='22.00' align='center'/>
<column id='状态' name='Status' wide='10.00' align='center'/>
<column id='优先级' name='Priority' wide='10.00' align='center'/>
<column id='项目' name='Component' wide='10.00' align='center'/>
<column id='设计者' name='Owner' wide='10.00' align='center'/>
<column id='步骤' name='Step' wide='45.75' align='left' row_text='1' index='true'/>
<column id='预期' name='Expected Result' wide='45.75' align='left' row_text='1' index='true'/>
<datas id='状态'>
<data name='Approved' />
<data name='Draft' />
<data name='Deprecated' />
</datas>
<datas id='优先级'>
<data name='High' />
<data name='Normal' />
<data name='Low' />
</datas>
<datas id='模块'>
<file path='Test/ListDataFile/模块信息.xlsx' regex='Sheet1' column='2' start_row='2' end_row='11' />
</datas>
</sheet>
<!-- 测试程序时使用 -->
<!--
<sheet name='测试用例2' freeze='3'>
<column id='标题' name='Name' wide='30.88' align='center'/>
<column id='目的' name='Objective' wide='18.25' align='center'/>
<column id='前置条件' name='Precondition' wide='18.25' align='center'/>
<datas id='目的'>
<data name='1' />
<data name='2' />
<data name='3' />
</datas>
<datas id='标题'>
<data name='呵呵' />
<data name='哈哈' />
<data name='嘻嘻' />
</datas>
</sheet>
-->
</templet>