添加jira用例模板的特性方法
This commit is contained in:
parent
791ebc0a0b
commit
846dabb1ad
|
@ -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>
|
Binary file not shown.
|
@ -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>
|
||||
|
||||
|
|
BIN
Result/测试用例.xlsx
BIN
Result/测试用例.xlsx
Binary file not shown.
|
@ -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);
|
||||
|
|
|
@ -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格式文件
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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));
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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)}方法
|
||||
|
|
|
@ -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>
|
Loading…
Reference in New Issue