添加用例模板相关的类

This commit is contained in:
彭宇琦 2020-03-07 19:41:11 +08:00
parent 9b98849156
commit d257043768
12 changed files with 667 additions and 180 deletions

View File

@ -1,186 +1,406 @@
<?xml version="1.0" encoding="GBK"?>
<cases project="AddInformation">
<case function="addTextboxCase">
<?xml version='1.0' encoding='UTF-8'?>
<cases project='AddInformation'>
<case name='addTextboxCase'>
<steps>
<step id="1" value="不填写或只输入空格,点击“*{buttonName}*”按钮"/>
<step id="2" value="填写特殊字符或HTML代码点击“*{buttonName}*”按钮"/>
<step id="3" value="输入非*{charGroup}*,点击“*{buttonName}*”按钮"/>
<step id="4" value="输入小于*{lengthMin}*个字符,点击“*{buttonName}*”按钮"/>
<step id="5" value="输入*{lengthMin}*个字符,点击“*{buttonName}*”按钮"/>
<step id="6" value="输入大于*{lengthMax}*个字符,点击“*{buttonName}*”按钮"/>
<step id="7" value="输入*{lengthMax}*个字符,点击“*{buttonName}*”按钮"/>
<step id="8" value="输入小于*{numberMin}*的数字,点击“*{buttonName}*”按钮"/>
<step id="9" value="输入*{numberMin}*的数字,点击“*{buttonName}*”按钮"/>
<step id="10" value="输入大于*{numberMax}*的数字,点击“*{buttonName}*”按钮"/>
<step id="11" value="输入*{numberMax}*的数字,点击“*{buttonName}*”按钮"/>
<step id="12" value="填写一个已存在的*{name}*信息,点击“*{buttonName}*”按钮"/>
<step id='1' value='不填写或只输入空格,点击“*{按钮名称}*”按钮'/>
<step id='2' value='填写特殊字符或HTML代码点击“*{按钮名称}*”按钮'/>
<step id='3' value='输入非*{输入限制}*,点击“*{按钮名称}*”按钮'/>
<step id='4' value='输入小于*{最短长度限制}*个字符,点击“*{按钮名称}*”按钮'/>
<step id='5' value='输入*{最短长度限制}*个字符,点击“*{按钮名称}*”按钮'/>
<step id='6' value='输入大于*{最长长度限制}*个字符,点击“*{按钮名称}*”按钮'/>
<step id='7' value='输入*{最长长度限制}*个字符,点击“*{按钮名称}*”按钮'/>
<step id='8' value='输入小于*{数字最小限制}*的数字,点击“*{按钮名称}*”按钮'/>
<step id='9' value='输入*{数字最小限制}*的数字,点击“*{按钮名称}*”按钮'/>
<step id='10' value='输入大于*{数字最大限制}*的数字,点击“*{按钮名称}*”按钮'/>
<step id='11' value='输入*{数字最大限制}*的数字,点击“*{按钮名称}*”按钮'/>
<step id='12' value='填写一个与*{信息}*中已存在相同关键词的*{控件名称}*信息,点击“*{按钮名称}*”按钮'/>
</steps>
<expectationss>
</expectationss>
<excepts>
<except id='1' value='*{成功预期前文}**{信息}*创建成功,界面返回到列表页,其*{信息}*列表上显示新增的信息*{成功预期后文}*'/>
<except id='2' value='*{失败预期前文}**{信息}*创建失败,并给出相应的提示*{失败预期后文}*'/>
</excepts>
<titles>
<title id='1' value='新增不同*{控件名称}*的*{信息}*' />
</titles>
<preconditions>
<precondition id='1' value='已在新增*{信息}*的页面上' />
<precondition id='2' value='除*{控件名称}*外,其他信息均正确填写' />
</preconditions>
<ranks>
<rank id='1' value='1' />
<rank id='2' value='2' />
<rank id='3' value='3' />
</ranks>
<keys>
<key id='1' value='*{控件名称}*、*{信息}*、新增' />
</keys>
</case>
<case function="addSelectboxCase">
<case name='addSelectboxCase'>
<steps>
<step id="1" value="不进行选择或选择空选项,点击“*{buttonName}*”按钮"/>
<step id="2" value="选择选项中的第一项,点击“*{buttonName}*”按钮"/>
<step id="3" value="选择选项中的最后一项,点击“*{buttonName}*”按钮"/>
<step id='1' value='不进行选择或选择空选项,点击“*{按钮名称}*”按钮'/>
<step id='2' value='选择选项中的第一项,点击“*{按钮名称}*”按钮'/>
<step id='3' value='选择选项中的最后一项,点击“*{按钮名称}*”按钮'/>
</steps>
<expectationss>
</expectationss>
<excepts>
<except id='1' value='*{成功预期前文}**{信息}*创建成功,界面返回到列表页,其*{信息}*列表上显示新增的信息*{成功预期后文}*'/>
<except id='2' value='*{失败预期前文}**{信息}*创建失败,并给出相应的提示*{失败预期后文}*'/>
</excepts>
<titles>
<title id='1' value='新增不同*{控件名称}*的*{信息}*' />
</titles>
<preconditions>
<precondition id='1' value='已在新增*{信息}*的页面上' />
<precondition id='2' value='除*{控件名称}*外,其他信息均正确填写' />
</preconditions>
<ranks>
<rank id='1' value='1' />
<rank id='2' value='2' />
<rank id='3' value='3' />
</ranks>
<keys>
<key id='1' value='*{控件名称}*、*{信息}*、新增' />
</keys>
</case>
<case function="addRadioButtonCase">
<case name='addRadioButtonCase'>
<steps>
<step id="1" value="从第一个选项开始,将所有的选项依次点击"/>
<step id="2" value="不进行选择,点击“*{buttonName}*”按钮"/>
<step id="3" value="选择选项中的第一项,点击“*{buttonName}*”按钮"/>
<step id="4" value="选择选项中的最后一项,点击“*{buttonName}*”按钮"/>
<step id='1' value='从第一个选项开始,将所有的选项依次点击'/>
<step id='2' value='不进行选择,点击“*{按钮名称}*”按钮'/>
<step id='3' value='选择选项中的第一项,点击“*{按钮名称}*”按钮'/>
<step id='4' value='选择选项中的最后一项,点击“*{按钮名称}*”按钮'/>
</steps>
<expectations>
<expectation id="1" value="不会出现有两个或以上的选项被选中的情况"/>
</expectations>
<excepts>
<except id='1' value='*{成功预期前文}**{信息}*创建成功,界面返回到列表页,其*{信息}*列表上显示新增的信息*{成功预期后文}*'/>
<except id='2' value='*{失败预期前文}**{信息}*创建失败,并给出相应的提示*{失败预期后文}*'/>
<except id='3' value='不会出现有两个或以上的选项被选中的情况'/>
</excepts>
<titles>
<title id='1' value='新增不同*{控件名称}*的*{信息}*' />
</titles>
<preconditions>
<precondition id='1' value='已在新增*{信息}*的页面上' />
<precondition id='2' value='除*{控件名称}*外,其他信息均正确填写' />
</preconditions>
<ranks>
<rank id='1' value='1' />
<rank id='2' value='2' />
<rank id='3' value='3' />
</ranks>
<keys>
<key id='1' value='*{控件名称}*、*{信息}*、新增' />
</keys>
</case>
<case function="addCheckboxCase">
<case name='addCheckboxCase'>
<steps>
<step id="1" value="从第一个选项开始,依次点击所有的选项"/>
<step id="2" value="再次依次点击所有的选项"/>
<step id="3" value="不进行选择,点击“*{buttonName}*”按钮"/>
<step id="4" value="选择选项中的第一项,点击“*{buttonName}*”按钮"/>
<step id="5" value="选择选项中的最后一项,点击“*{buttonName}*”按钮"/>
<step id="6" value="选择其中多个选项,点击“*{buttonName}*”按钮"/>
<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="所有的选项均被勾选"/>
<expectation id="2" value="所有的选项均被取消勾选"/>
</expectations>
<excepts>
<except id='1' value='*{成功预期前文}**{信息}*创建成功,界面返回到列表页,其*{信息}*列表上显示新增的信息*{成功预期后文}*'/>
<except id='2' value='*{失败预期前文}**{信息}*创建失败,并给出相应的提示*{失败预期后文}*'/>
<except id='3' value='所有的选项均被勾选'/>
<except id='4' value='所有的选项均被取消勾选'/>
</excepts>
<titles>
<title id='1' value='新增不同*{控件名称}*的*{信息}*' />
</titles>
<preconditions>
<precondition id='1' value='已在新增*{信息}*的页面上' />
<precondition id='2' value='除*{控件名称}*外,其他信息均正确填写' />
</preconditions>
<ranks>
<rank id='1' value='1' />
<rank id='2' value='2' />
<rank id='3' value='3' />
</ranks>
<keys>
<key id='1' value='*{控件名称}*、*{信息}*、新增' />
</keys>
</case>
<case function="addDateCase">
<case name='addDateCase'>
<steps>
<step id="1" value="不选择时间,点击“*{buttonName}*”按钮"/>
<step id="2" value="选择当前的时间,点击“*{buttonName}*”按钮"/>
<step id="3" value="选择时间后清空时间,点击“*{buttonName}*”按钮"/>
<step id="4" value="手动输入正确格式的日期,点击“*{buttonName}*”按钮"/>
<step id="5" value="手动输入非正确格式的日期,点击“*{buttonName}*”按钮"/>
<step id='1' value='不选择时间,点击“*{按钮名称}*”按钮'/>
<step id='2' value='选择当前的时间,点击“*{按钮名称}*”按钮'/>
<step id='3' value='选择时间后清空时间,点击“*{按钮名称}*”按钮'/>
<step id='4' value='手动输入正确格式的日期,点击“*{按钮名称}*”按钮'/>
<step id='5' value='手动输入非正确格式的日期,点击“*{按钮名称}*”按钮'/>
</steps>
<expectations>
</expectations>
<excepts>
<except id='1' value='*{成功预期前文}**{信息}*创建成功,界面返回到列表页,其*{信息}*列表上显示新增的信息*{成功预期后文}*'/>
<except id='2' value='*{失败预期前文}**{信息}*创建失败,并给出相应的提示*{失败预期后文}*'/>
</excepts>
<titles>
<title id='1' value='新增不同*{控件名称}*的*{信息}*' />
</titles>
<preconditions>
<precondition id='1' value='已在新增*{信息}*的页面上' />
<precondition id='2' value='除*{控件名称}*外,其他信息均正确填写' />
</preconditions>
<ranks>
<rank id='1' value='1' />
<rank id='2' value='2' />
<rank id='3' value='3' />
</ranks>
<keys>
<key id='1' value='*{控件名称}*、*{信息}*、新增' />
</keys>
</case>
<case function="addStartDateCase">
<case name='addStartDateCase'>
<steps>
<step id="1" value="不选择时间,点击“*{buttonName}*”按钮"/>
<step id="2" value="选择当前的时间,点击“*{buttonName}*”按钮"/>
<step id="3" value="选择时间后清空时间,点击“*{buttonName}*”按钮"/>
<step id="4" value="手动输入正确格式的日期,点击“*{buttonName}*”按钮"/>
<step id="5" value="手动输入非正确格式的日期,点击“*{buttonName}*”按钮"/>
<step id="6" value="输入或选择大于*{endDateName}*的日期,点击“*{buttonName}*”按钮"/>
<step id="7" value="选择大于*{endDateName}*的日期,点击“*{buttonName}*”按钮"/>
<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>
</expectations>
<excepts>
<except id='1' value='*{成功预期前文}**{信息}*创建成功,界面返回到列表页,其*{信息}*列表上显示新增的信息*{成功预期后文}*'/>
<except id='2' value='*{失败预期前文}**{信息}*创建失败,并给出相应的提示*{失败预期后文}*'/>
</excepts>
<titles>
<title id='1' value='新增不同*{控件名称}*的*{信息}*' />
</titles>
<preconditions>
<precondition id='1' value='已在新增*{信息}*的页面上' />
<precondition id='2' value='除*{控件名称}*外,其他信息均正确填写' />
</preconditions>
<ranks>
<rank id='1' value='1' />
<rank id='2' value='2' />
<rank id='3' value='3' />
</ranks>
<keys>
<key id='1' value='*{控件名称}*、*{信息}*、新增' />
</keys>
</case>
<case function="addEndDateCase">
<case name='addEndDateCase'>
<steps>
<step id="1" value="不选择时间,点击“*{buttonName}*”按钮"/>
<step id="2" value="选择当前的时间,点击“*{buttonName}*”按钮"/>
<step id="3" value="选择时间后清空时间,点击“*{buttonName}*”按钮"/>
<step id="4" value="手动输入正确格式的日期,点击“*{buttonName}*”按钮"/>
<step id="5" value="手动输入非正确格式的日期,点击“*{buttonName}*”按钮"/>
<step id="6" value="输入或选择小于*{startDateName}*的日期,点击“*{buttonName}*”按钮"/>
<step id="7" value="选择小于*{startDateName}*的日期,点击“*{buttonName}*”按钮"/>
<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>
</expectations>
<excepts>
<except id='1' value='*{成功预期前文}**{信息}*创建成功,界面返回到列表页,其*{信息}*列表上显示新增的信息*{成功预期后文}*'/>
<except id='2' value='*{失败预期前文}**{信息}*创建失败,并给出相应的提示*{失败预期后文}*'/>
</excepts>
<titles>
<title id='1' value='新增不同*{控件名称}*的*{信息}*' />
</titles>
<preconditions>
<precondition id='1' value='已在新增*{信息}*的页面上' />
<precondition id='2' value='除*{控件名称}*外,其他信息均正确填写' />
</preconditions>
<ranks>
<rank id='1' value='1' />
<rank id='2' value='2' />
<rank id='3' value='3' />
</ranks>
<keys>
<key id='1' value='*{控件名称}*、*{信息}*、新增' />
</keys>
</case>
<case function="addPhoneCase">
<case name='addPhoneCase'>
<steps>
<step id="1" value="不进行输入,点击“*{buttonName}*”按钮"/>
<step id="2" value="输入非数字字符,点击“*{buttonName}*”按钮"/>
<step id="3" value="输入大于11位的数字点击“*{buttonName}*”按钮"/>
<step id="4" value="输入小于11位的数字点击“*{buttonName}*”按钮"/>
<step id="5" value="输入大于7位的数字点击“*{buttonName}*”按钮"/>
<step id="6" value="输入小于7位的数字点击“*{buttonName}*”按钮"/>
<step id="7" value="输入不符合规则但长度符合规则的数字,点击“*{buttonName}*”按钮"/>
<step id='1' value='不进行输入,点击“*{按钮名称}*”按钮'/>
<step id='2' value='输入非数字字符,点击“*{按钮名称}*”按钮'/>
<step id='3' value='输入大于11位的数字点击“*{按钮名称}*”按钮'/>
<step id='4' value='输入小于11位的数字点击“*{按钮名称}*”按钮'/>
<step id='5' value='输入大于7位的数字点击“*{按钮名称}*”按钮'/>
<step id='6' value='输入小于7位的数字点击“*{按钮名称}*”按钮'/>
<step id='7' value='输入不符合规则但长度符合规则的数字,点击“*{按钮名称}*”按钮'/>
</steps>
<expectations>
</expectations>
<excepts>
<except id='1' value='*{成功预期前文}**{信息}*创建成功,界面返回到列表页,其*{信息}*列表上显示新增的信息*{成功预期后文}*'/>
<except id='2' value='*{失败预期前文}**{信息}*创建失败,并给出相应的提示*{失败预期后文}*'/>
</excepts>
<titles>
<title id='1' value='新增不同*{控件名称}*的*{信息}*' />
</titles>
<preconditions>
<precondition id='1' value='已在新增*{信息}*的页面上' />
<precondition id='2' value='除*{控件名称}*外,其他信息均正确填写' />
</preconditions>
<ranks>
<rank id='1' value='1' />
<rank id='2' value='2' />
<rank id='3' value='3' />
</ranks>
<keys>
<key id='1' value='*{控件名称}*、*{信息}*、新增' />
</keys>
</case>
<case function="addIDCardCase">
<case name='addIDCardCase'>
<steps>
<step id="1" value="不进行输入,点击“*{buttonName}*”按钮"/>
<step id="2" value="输入非数字字符,点击“*{buttonName}*”按钮"/>
<step id="3" value="输入15位的证件信息点击“*{buttonName}*”按钮"/>
<step id="4" value="输入18位的证件信息点击“*{buttonName}*”按钮"/>
<step id="5" value="输入末尾带“X”或“x”的证件信息点击“*{buttonName}*”按钮"/>
<step id="6" value="输入大于18位的数字点击“*{buttonName}*”按钮"/>
<step id="7" value="输入小于18位但大于15位的数字点击“*{buttonName}*”按钮"/>
<step id="8" value="输入小于15位的数字点击“*{buttonName}*”按钮"/>
<step id="9" value="输入不符合证件规则但长度符合规则的数字如123456789012345678点击“*{buttonName}*”按钮"/>
<step id="10" value="输入存在的证件信息,点击“*{buttonName}*”按钮"/>
<step id='1' value='不进行输入,点击“*{按钮名称}*”按钮'/>
<step id='2' value='输入非数字字符,点击“*{按钮名称}*”按钮'/>
<step id='3' value='输入15位的证件信息点击“*{按钮名称}*”按钮'/>
<step id='4' value='输入18位的证件信息点击“*{按钮名称}*”按钮'/>
<step id='5' value='输入末尾带“X”或“x”的证件信息点击“*{按钮名称}*”按钮'/>
<step id='6' value='输入大于18位的数字点击“*{按钮名称}*”按钮'/>
<step id='7' value='输入小于18位但大于15位的数字点击“*{按钮名称}*”按钮'/>
<step id='8' value='输入小于15位的数字点击“*{按钮名称}*”按钮'/>
<step id='9' value='输入不符合证件规则但长度符合规则的数字如123456789012345678点击“*{按钮名称}*”按钮'/>
<step id='10' value='输入存在的证件信息,点击“*{按钮名称}*”按钮'/>
</steps>
<expectations>
</expectations>
<excepts>
<except id='1' value='*{成功预期前文}**{信息}*创建成功,界面返回到列表页,其*{信息}*列表上显示新增的信息*{成功预期后文}*'/>
<except id='2' value='*{失败预期前文}**{信息}*创建失败,并给出相应的提示*{失败预期后文}*'/>
</excepts>
<titles>
<title id='1' value='新增不同*{控件名称}*的*{信息}*' />
</titles>
<preconditions>
<precondition id='1' value='已在新增*{信息}*的页面上' />
<precondition id='2' value='除*{控件名称}*外,其他信息均正确填写' />
</preconditions>
<ranks>
<rank id='1' value='1' />
<rank id='2' value='2' />
<rank id='3' value='3' />
</ranks>
<keys>
<key id='1' value='*{控件名称}*、*{信息}*、新增' />
</keys>
</case>
<case function="addUploadImageCase">
<case name='addUploadImageCase'>
<steps>
<step id="1" value="不*{text}*图片,点击“*{buttonName}*”按钮"/>
<step id="2" value="上传图片后点击图片"/>
<step id="3" value="*{text}*图片后删除图片再*{text}*图片,点击“*{buttonName}*”按钮"/>
<step id="4" value="*{text}*同一张图片,点击“*{buttonName}*”按钮"/>
<step id="5" value="拍照后再取消拍照"/>
<step id="6" value="*{text}*超过限制大小的图片,点击“*{buttonName}*”按钮"/>
<step id="7" value="*{text}*较大的图片如超过3M的图片点击“*{buttonName}*”按钮"/>
<step id="8" value="上传非*{fileGroup}*格式的文件,点击“*{buttonName}*”按钮"/>
<step id="9" value="*{text}*上传非图片格式的文件,点击“*{buttonName}*”按钮"/>
<step id="10" value="*{text}*小于*{fileMin}**{s}**{mode}*,点击“*{buttonName}*”按钮"/>
<step id="11" value="*{text}**{fileMin}**{s}**{mode}*,点击“*{buttonName}*”按钮"/>
<step id="12" value="*{text}*大于*{fileMax}**{s}**{mode}*,点击“*{buttonName}*”按钮"/>
<step id="13" value="*{text}**{fileMax}**{s}**{mode}*,点击“*{buttonName}*”按钮"/>
<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='*{操作名称}*较大的图片如超过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}*,点击“*{按钮名称}*”按钮'/>
</steps>
<expectations>
<expectation id="2" value="图片能进行预览"/>
<expectation id="5" value="界面上不显示任何图片"/>
</expectations>
<excepts>
<except id='1' value='*{成功预期前文}**{信息}*创建成功,界面返回到列表页,其*{信息}*列表上显示新增的信息*{成功预期后文}*'/>
<except id='2' value='*{失败预期前文}**{信息}*创建失败,并给出相应的提示*{失败预期后文}*'/>
<except id='3' value='图片能进行预览'/>
<except id='4' value='界面上不显示任何图片'/>
</excepts>
<titles>
<title id='1' value='新增不同*{控件名称}*的*{信息}*' />
</titles>
<preconditions>
<precondition id='1' value='已在新增*{信息}*的页面上' />
<precondition id='2' value='除*{控件名称}*外,其他信息均正确填写' />
</preconditions>
<ranks>
<rank id='1' value='1' />
<rank id='2' value='2' />
<rank id='3' value='3' />
</ranks>
<keys>
<key id='1' value='*{控件名称}*、*{信息}*、新增' />
</keys>
</case>
<case function="addUploadFileCase">
<case name='addUploadFileCase'>
<steps>
<step id="1" value="不上传文件,点击“*{buttonName}*”按钮"/>
<step id="2" value="上传文件后删除图片再上传一个文件,点击“*{buttonName}*”按钮"/>
<step id="3" value="上传同一个文件,点击“*{buttonName}*”按钮"/>
<step id="4" value="上传超过限制大小的文件,点击“*{buttonName}*”按钮"/>
<step id="5" value="上传较大的文件如超过50M的文件点击“*{buttonName}*”按钮"/>
<step id="6" value="上传非*{fileGroup}*格式的文件,点击“*{buttonName}*”按钮"/>
<step id="7" value="*{text}*小于*{fileMin}**{s}**{mode}*,点击“*{buttonName}*”按钮"/>
<step id="8" value="*{text}**{fileMin}**{s}**{mode}*,点击“*{buttonName}*”按钮"/>
<step id="9" value="*{text}*大于*{fileMax}**{s}**{mode}*,点击“*{buttonName}*”按钮"/>
<step id="10" value="*{text}**{fileMax}**{s}**{mode}*,点击“*{buttonName}*”按钮"/>
<step id='1' 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}*,点击“*{按钮名称}*”按钮'/>
</steps>
<expectations>
</expectations>
<excepts>
<except id='1' value='*{成功预期前文}**{信息}*创建成功,界面返回到列表页,其*{信息}*列表上显示新增的信息*{成功预期后文}*'/>
<except id='2' value='*{失败预期前文}**{信息}*创建失败,并给出相应的提示*{失败预期后文}*'/>
</excepts>
<titles>
<title id='1' value='新增不同*{控件名称}*的*{信息}*' />
</titles>
<preconditions>
<precondition id='1' value='已在新增*{信息}*的页面上' />
<precondition id='2' value='除*{控件名称}*外,其他信息均正确填写' />
</preconditions>
<ranks>
<rank id='1' value='1' />
<rank id='2' value='2' />
<rank id='3' value='3' />
</ranks>
<keys>
<key id='1' value='*{控件名称}*、*{信息}*、新增' />
</keys>
</case>
<case function="addWholeInformationCase">
<case name='addWholeInformationCase'>
<steps>
<step id="1" value="正确填写所有的信息,点击“*{buttonName}*”按钮"/>
<step id='1' value='正确填写所有的信息,点击“*{按钮名称}*”按钮'/>
</steps>
<expectations>
</expectations>
<excepts>
<except id='1' value='*{成功预期前文}**{信息}*创建成功,界面返回到列表页,其*{信息}*列表上显示新增的信息*{成功预期后文}*'/>
</excepts>
<titles>
<title id='1' value='新增不同*{控件名称}*的*{信息}*' />
</titles>
<preconditions>
<precondition id='1' value='已在新增*{信息}*的页面上' />
<precondition id='2' value='除*{控件名称}*外,其他信息均正确填写' />
</preconditions>
<ranks>
<rank id='1' value='1' />
<rank id='2' value='2' />
<rank id='3' value='3' />
</ranks>
<keys>
<key id='1' value='*{控件名称}*、*{信息}*、新增' />
</keys>
</case>
<case function="addUnWholeInformationCase">
<case name='addUnWholeInformationCase'>
<steps>
<step id="1" value="不填写任何信息,点击“*{buttonName}*”按钮"/>
<step id="2" value="只填写所有的必填项信息,点击“*{buttonName}*”按钮"/>
<step id="3" value="只填写所有的非必填项信息,点击“*{buttonName}*”按钮"/>
<step id='1' value='不填写任何信息,点击“*{按钮名称}*”按钮'/>
<step id='2' value='只填写所有的必填项信息,点击“*{按钮名称}*”按钮'/>
<step id='3' value='只填写所有的非必填项信息,点击“*{按钮名称}*”按钮'/>
</steps>
<expectations>
</expectations>
<excepts>
<except id='1' value='*{成功预期前文}**{信息}*创建成功,界面返回到列表页,其*{信息}*列表上显示新增的信息*{成功预期后文}*'/>
<except id='2' value='*{失败预期前文}**{信息}*创建失败,并给出相应的提示*{失败预期后文}*'/>
</excepts>
<titles>
<title id='1' value='新增不同*{控件名称}*的*{信息}*' />
</titles>
<preconditions>
<precondition id='1' value='已在新增*{信息}*的页面上' />
<precondition id='2' value='除*{控件名称}*外,其他信息均正确填写' />
</preconditions>
<ranks>
<rank id='1' value='1' />
<rank id='2' value='2' />
<rank id='3' value='3' />
</ranks>
<keys>
<key id='1' value='*{控件名称}*、*{信息}*、新增' />
</keys>
</case>
</cases>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="GBK"?>
<cases project="BrowseList">
<case function="addAppBrowseListCase">
<case name="addAppBrowseListCase">
<title value="浏览*{name}*列表" />
<keyword value="*{name}*列表,刷新,加载" />
<rank value="1" />
@ -23,7 +23,7 @@
</expectations>
</case>
<case function="addWebBrowseListCase">
<case name="addWebBrowseListCase">
<title value="浏览*{name}*列表" />
<keyword value="*{name}*列表,刷新,加载" />
<rank value="1" />
@ -48,7 +48,7 @@
</expectations>
</case>
<case function="addInputSearchCase">
<case name="addInputSearchCase">
<title value="通过*{condition}*对*{information}*进行搜索" />
<keyword value="*{information}*列表,搜索" />
<rank value="1" />
@ -69,7 +69,7 @@
</expectations>
</case>
<case function="addSelectSearchCase">
<case name="addSelectSearchCase">
<title value="通过*{condition}*对*{information}*进行搜索" />
<keyword value="*{information}*列表,搜索" />
<rank value="1" />
@ -92,7 +92,7 @@
</expectations>
</case>
<case function="addDateSearchCase">
<case name="addDateSearchCase">
<title value="通过*{condition}*对*{information}*进行搜索" />
<keyword value="*{information}*列表,搜索" />
<rank value="1" />
@ -117,7 +117,7 @@
</expectations>
</case>
<case function="addListSortCase">
<case name="addListSortCase">
<title value="对*{information}*列表按照*{condition}*进行排序" />
<keyword value="*{information}*列表,排序" />
<rank value="1" />
@ -136,7 +136,7 @@
</expectations>
</case>
<case function="addExportListCase">
<case name="addExportListCase">
<title value="导出*{information}*列表的数据" />
<keyword value="*{information}*列表,导出" />
<rank value="1" />
@ -159,7 +159,7 @@
</expectations>
</case>
<case function="addImportListCase">
<case name="addImportListCase">
<title value="导入*{information}*列表的数据" />
<keyword value="*{information}*列表,导入" />
<rank value="1" />
@ -177,7 +177,7 @@
</expectations>
</case>
<case function="addResetSearchCase">
<case name="addResetSearchCase">
<title value="重置搜索" />
<keyword value="重置,搜索" />
<rank value="1" />
@ -192,7 +192,7 @@
</expectations>
</case>
<case function="addSwitchListShowDataCase">
<case name="addSwitchListShowDataCase">
<title value="修改列表每页显示的数据量" />
<keyword value="切换,数据量" />
<rank value="1" />

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="GBK"?>
<cases project="Map">
<case function="addRangeFindingCase">
<case name="addRangeFindingCase">
<title value="在地图上进行测距" />
<keyword value="地图,测距" />
<rank value="3" />
@ -26,7 +26,7 @@
</expectations>
</case>
<case function="addMapPointCase">
<case name="addMapPointCase">
<title value="查看地图*{pointName}*定位点信息" />
<keyword value="地图,*{pointName}*,定位点" />
<rank value="2" />
@ -43,7 +43,7 @@
</expectations>
</case>
<case function="addMapSearchInformationCase">
<case name="addMapSearchInformationCase">
<title value="通过*{condition}*在地图上搜索*{name}*信息" />
<keyword value="地图,*{name}*,搜索" />
<rank value="1" />
@ -64,7 +64,7 @@
</expectations>
</case>
<case function="addCarLocusPlaybackCase">
<case name="addCarLocusPlaybackCase">
<title value="回放车辆轨迹" />
<keyword value="车辆轨迹" />
<rank value="1" />
@ -87,7 +87,7 @@
</expectations>
</case>
<case function="addShowLocusCase">
<case name="addShowLocusCase">
<title value="地图上显示车辆轨迹点" />
<keyword value="车辆轨迹" />
<rank value="1" />

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="GBK"?>
<cases project="Username">
<case function="addRightLoginCase">
<case name="addRightLoginCase">
<title value="通过正确的用户名与密码进行登录" />
<keyword value="正确的,用户名,密码,登录" />
<rank value="1" />
@ -14,7 +14,7 @@
</expectations>
</case>
<case function="addErrorLoginCase">
<case name="addErrorLoginCase">
<title value="通过非常规的用户名与密码进行登录" />
<keyword value="不正确的,用户名,密码,登录" />
<rank value="2" />
@ -36,7 +36,7 @@
</expectations>
</case>
<case function="addCaptchaCase">
<case name="addCaptchaCase">
<title value="输入不同的验证码进行登录" />
<keyword value="验证码,登录" />
<rank value="1" />
@ -55,7 +55,7 @@
</expectations>
</case>
<case function="addLoginAuthorityCase">
<case name="addLoginAuthorityCase">
<title value="通过不同权限的帐号进行登录" />
<keyword value="权限,登录" />
<rank value="1" />
@ -72,7 +72,7 @@
</expectations>
</case>
<case function="addUsernameRegisterCase">
<case name="addUsernameRegisterCase">
<title value="注册不同用户名的账号" />
<keyword value="用户名,注册" />
<rank value="1" />
@ -100,7 +100,7 @@
</expectations>
</case>
<case function="addUsernameForgetCase">
<case name="addUsernameForgetCase">
<title value="通过不同用户名的账号进行忘记密码操作" />
<keyword value="用户名,忘记密码" />
<rank value="1" />
@ -122,7 +122,7 @@
</expectations>
</case>
<case function="addPasswordRegisterOrForgetCase">
<case name="addPasswordRegisterOrForgetCase">
<title value="通过不同的密码进行*{operation}*操作" />
<keyword value="密码,*{operation}*" />
<rank value="1" />
@ -146,7 +146,7 @@
</expectations>
</case>
<case function="addCodeRegisterOrForgetCase">
<case name="addCodeRegisterOrForgetCase">
<title value="通过不同的验证码进行*{operation}*操作" />
<keyword value="验证码,*{operation}*" />
<rank value="1" />
@ -172,7 +172,7 @@
</expectations>
</case>
<case function="addAlterPasswordCase">
<case name="addAlterPasswordCase">
<title value="修改用户密码" />
<keyword value="修改,密码" />
<rank value="1" />

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="GBK"?>
<cases project="Video">
<case function="addPlayVideoCase">
<case name="addPlayVideoCase">
<title value="꺄렴/董界*{videoType}*" />
<keyword value="꺄렴/董界" />
<rank value="1" />
@ -24,7 +24,7 @@
</expectations>
</case>
<case function="addVideoScreenshotCase">
<case name="addVideoScreenshotCase">
<title value="뚤*{videoType}*쏵契쌔暠" />
<keyword value="*{videoType}*,쌔暠" />
<rank value="2" />
@ -44,7 +44,7 @@
</expectations>
</case>
<case function="addVideoAdvanceCase">
<case name="addVideoAdvanceCase">
<title value="우쏵/우藁*{videoType}*" />
<keyword value="*{videoType}*,우쏵,우藁" />
<rank value="2" />
@ -76,7 +76,7 @@
</expectations>
</case>
<case function="addVideoSpeedCase">
<case name="addVideoSpeedCase">
<title value="우렴/찹렴*{videoType}*" />
<keyword value="*{videoType}*,우렴,찹렴" />
<rank value="2" />
@ -96,7 +96,7 @@
</expectations>
</case>
<case function="addVideoProgressBarCase">
<case name="addVideoProgressBarCase">
<title value="賈땡쏵똑係" />
<keyword value="쏵똑係" />
<rank value="2" />
@ -117,7 +117,7 @@
</expectations>
</case>
<case function="addFullScreenPlayCase">
<case name="addFullScreenPlayCase">
<title value="홍팁꺄렴*{videoType}*" />
<keyword value="홍팁*{videoType}*" />
<rank value="2" />

View File

@ -1,5 +0,0 @@
package pres.auxiliary.work.n.tcase;
public abstract class AbstractCase {
}

View File

@ -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;
/**
* <p><b>文件名</b>AbstractCase.java</p>
* <p><b>用途</b>定义测试用例模板类能返回的基本字段提供其相应的get与set方法但该方法不允许包外调用</p>
* <p><b>编码时间</b>2020年3月3日下午8:07:23</p>
* <p><b>修改时间</b>2020年3月4日 07:39:23</p>
* @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文件的Document对象
*/
Document configXml;
/**
* 存储xml文件中其需要替换的词语
*/
HashMap<String, String> textMap = new HashMap<String, String>();
/**
* 根据用例xml文件来构造Case类
* @param configXmlFile xml配置文件
* @throws IncorrectFileException 文件格式或路径不正确时抛出的异常
*/
@SuppressWarnings("unchecked")
public Case(File configXmlFile) {
// 判断传入的configurationFile是否为一个文件类对象若非文件类对象则抛出异常
try {
configXml = new SAXReader().read(configXmlFile);
} catch (DocumentException e) {
throw new IncorrectFileException("用例xml文件有误" );
}
//获取xml中包含value的元素并将其中包含需要替换的词语存储至textMap\
List<Element> textElement = configXml.selectNodes("//*[@value]");
textElement.stream().
//获取元素的value属性将其转换为文本对象
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;
//循环替换content中所有需要替换的信息
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();
}
}

View File

@ -0,0 +1,15 @@
package pres.auxiliary.work.n.tcase;
/**
* <p><b>文件名</b>DataListCase.java</p>
* <p><b>用途</b>用于生成数据列表相关的测试用例</p>
* <p><b>编码时间</b>2020年3月3日下午8:25:33</p>
* <p><b>修改时间</b>2020年3月3日下午8:25:33</p>
* @author
* @version Ver1.0
* @since JDK 12
*
*/
public class DataListCase extends Case {
}

View File

@ -0,0 +1,27 @@
package pres.auxiliary.work.n.tcase;
import java.io.File;
import java.util.HashMap;
/**
* <p><b>文件名</b>InformationCase.java</p>
* <p><b>用途</b>用于输出与页面新增或编辑信息相关的用例</p>
* <p><b>编码时间</b>2020年3月5日上午8:30:12</p>
* <p><b>修改时间</b>2020年3月5日上午8:30:12</p>
* @author 彭宇琦
* @version Ver1.0
* @since JDK 12
*/
public class InformationCase extends Case {
/**
* 通过测试用例模板库的xml配置文件来构造InformationCase对象
* @param configXmlFile 用例模板库的xml文件对象
*/
public InformationCase(File configXmlFile) {
super(configXmlFile);
}
}

View File

@ -43,7 +43,7 @@ import org.dom4j.io.SAXReader;
* <b>编码时间</b>2020年2月17日下午9:36:00
* </p>
* <p>
* <b>修改时间</b>2020年2月17日下午9:36:00
* <b>修改时间</b>2020年3月3日下午8:07:23
* </p>
*
* @author 彭宇琦
@ -107,19 +107,16 @@ public class WriteTestCase {
* 只存在一个sheet标签时则直接获取其对应sheet下所有column标签的id属性若存在
* 多个sheet标签时则读取第一个sheet标签如需切换sheet标签则可调用{@link #switchSheet(String)} 方法
*
* @param configurationFile 测试文件模板xml配置文件类对象
* @param configFile 测试文件模板xml配置文件类对象
* @param caseFile 测试用例文件类对象
* @throws DocumentException xml文件内容不正确时抛出的异常
* @throws IncorrectFileException 文件格式或路径不正确时抛出的异常
*/
public WriteTestCase(File configurationFile, File caseFile) throws DocumentException {
// 判断传入的configurationFile是否为一个文件类对象若非文件类对象则抛出异常isFile()方法包含判断文件是否存在
// 再判断文件是否包含文件路径是否包含.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) {
// 判断传入的configurationFile是否为一个文件类对象若非文件类对象则抛出异常
try {
configXml = new SAXReader().read(configFile);
} catch (DocumentException e) {
throw new IncorrectFileException("用例xml文件有误" );
}
// 获取xml文件中的第一个sheet标签则将该标签的name属性内容传入getColumnId中