欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 资讯 > 关于测试用例的写法

关于测试用例的写法

2024/10/25 21:49:28 来源:https://blog.csdn.net/weixin_54217201/article/details/143059634  浏览:    关键词:关于测试用例的写法

最近公司有个新项目,需要写测试用例,表单项有点多,一个表单都有40个字段左右,若写用例得400条左右,大部分都是重复的项,在此写个小程序,批量生成测试用例
需要注意的是本程序只使用于表单内容

模板template.yaml

上面几个是变量,按需求填写

#input_data: 输入框数据
#index: 步骤序号
#field_name: 输入框名称
#max_length: 最大长度
#min_length: 最小长度
#data_source: 数据来源
#file_max_size: 附件最大大小
#file_min_size: 附件最小大小
#file_format: 附件格式
#file_count: 附件数量
普通输入框:必填步骤:- 重要级别:输入数据: ${input_data}执行步骤: ${index}.输入${field_name}为空值预期输出: 输入框${field_name}输入为空值,提示:不能为空,重新输入测试结果:测试人:备注:步骤:- 重要级别:输入数据: ${input_data}执行步骤: ${index}.输入正确的${field_name}预期输出: 输入框${field_name}输入正确,转到下一步(步骤${next_index})判断测试结果:测试人:备注:- 重要级别:输入数据: ${input_data}执行步骤: ${index}.不输入${field_name}预期输出: 输入框${field_name}输入为空值,提示:不能为空,重新输入测试结果:测试人:备注:- 重要级别:输入数据: ${input_data}执行步骤: ${index}.输入错误的${field_name}预期输出: 输入框${field_name}输入错误,提示:请重新输入测试结果:测试人:备注:- 重要级别:输入数据: ${input_data}执行步骤: ${index}.${field_name}最大长度为${max_length}预期输出: 输入框${field_name}输入长度超过最大值,提示:长度不能超过${max_length}测试结果:测试人:备注:- 重要级别:输入数据: ${input_data}执行步骤: ${index}.${field_name}最小长度为${min_length}预期输出: 输入框${field_name}输入长度小于最小值,提示:长度不能小于${min_length}测试结果:测试人:备注:- 重要级别:输入数据: ${input_data}执行步骤: ${index}.输入${field_name}超过最大长度预期输出: 输入框${field_name}输入长度超过最大值测试结果:测试人:备注:- 重要级别:输入数据: ${input_data}执行步骤: ${index}.输入${field_name}超过最小长度预期输出: 输入框${field_name}输入长度小于最小值测试结果:测试人:备注:- 重要级别:输入数据: ${input_data}执行步骤: ${index}.输入${field_name}包含数字预期输出: 输入框${field_name}输入包含数字测试结果:测试人:备注:- 重要级别:输入数据: ${input_data}执行步骤: ${index}.输入${field_name}包含字母预期输出: 输入框${field_name}输入包含字母测试结果:测试人:备注:- 重要级别:输入数据: ${input_data}执行步骤: ${index}.输入${field_name}包含特殊字符预期输出: 输入框${field_name}输入包含特殊字符测试结果:测试人:备注:- 重要级别:输入数据: ${input_data}执行步骤: ${index}.输入${field_name}包含中文字符预期输出: 输入框${field_name}输入包含中文字符测试结果:测试人:备注:- 重要级别:输入数据: ${input_data}执行步骤: ${index}.输入${field_name}包含英文字符预期输出: 输入框${field_name}输入包含英文字符测试结果:测试人:备注:- 重要级别:输入数据: ${input_data}执行步骤: ${index}.输入${field_name}包含数字和字母预期输出: 输入框${field_name}输入包含数字和字母测试结果:测试人:备注:- 重要级别:输入数据: ${input_data}执行步骤: ${index}.输入${field_name}包含数字和特殊字符预期输出: 输入框${field_name}输入包含数字和特殊字符测试结果:测试人:备注:- 重要级别:输入数据: ${input_data}执行步骤: ${index}.输入${field_name}包含字母和特殊字符预期输出: 输入框${field_name}输入包含字母和特殊字符测试结果:测试人:备注:- 重要级别:输入数据: ${input_data}执行步骤: ${index}.输入${field_name}包含数字和中文字符预期输出: 输入框${field_name}输入包含数字和中文字符测试结果:测试人:备注:- 重要级别:输入数据: ${input_data}执行步骤: ${index}.输入${field_name}包含字母和中文字符预期输出: 输入框${field_name}输入包含字母和中文字符测试结果:测试人:备注:- 重要级别:输入数据: ${input_data}执行步骤: ${index}.输入${field_name}包含特殊字符和中文字符预期输出: 输入框${field_name}输入包含特殊字符和中文字符测试结果:测试人:备注:- 重要级别:输入数据: ${input_data}执行步骤: ${index}.输入${field_name}包含数字、字母和特殊字符预期输出: 输入框${field_name}输入包含数字、字母和特殊字符测试结果:测试人:备注:- 重要级别:输入数据: ${input_data}执行步骤: ${index}.输入${field_name}包含数字、字母和中文字符预期输出: 输入框${field_name}输入包含数字、字母和中文字符测试结果:测试人:备注:- 重要级别:输入数据: ${input_data}执行步骤: ${index}.输入${field_name}包含字母、特殊字符和中文字符预期输出: 输入框${field_name}输入包含字母、特殊字符和中文字符测试结果:测试人:备注:- 重要级别:输入数据: ${input_data}执行步骤: ${index}.输入${field_name}包含数字、特殊字符和中文字符预期输出: 输入框${field_name}输入包含数字、特殊字符和中文字符测试结果:测试人:备注:- 重要级别:输入数据: ${input_data}执行步骤: ${index}.输入${field_name}包含数字、字母、特殊字符和中文字符预期输出: 输入框${field_name}输入包含数字、字母、特殊字符和中文字符测试结果:测试人:备注:- 重要级别:输入数据: ${input_data}执行步骤: ${index}.输入${field_name}包含数字、字母、特殊字符、中文字符、空格预期输出: 输入框${field_name}输入包含数字、字母、特殊字符、中文字符、空格测试结果:测试人:备注:- 重要级别:输入数据: ${input_data}执行步骤: ${index}.输入${field_name}不符合格式要求预期输出: 输入框${field_name}输入不符合格式要求测试结果:测试人:备注:- 重要级别:输入数据: ${input_data}执行步骤: ${index}.输入${field_name}符合格式要求预期输出: 输入框${field_name}输入符合格式要求测试结果:测试人:备注:- 重要级别:输入数据: ${input_data}执行步骤: ${index}.输入${field_name}符合业务规则要求预期输出: 输入框${field_name}输入符合业务规则要求测试结果:测试人:备注:- 重要级别:输入数据: ${input_data}执行步骤: ${index}.输入${field_name}不符合业务规则要求预期输出: 输入框${field_name}输入不符合业务规则要求测试结果:测试人:备注:
选择框:必填步骤:- 重要级别:输入数据: ${input_data}执行步骤: ${index}.不选择${field_name}预期输出: 选择框${field_name}未选择,提示:请选择测试结果:测试人:备注:- 重要级别:输入数据: ${input_data}执行步骤: ${index}.选择${field_name}为空值预期输出: 选择框${field_name}选择为空值,提示:请选择测试结果:测试人:备注:步骤:- 重要级别:输入数据: ${input_data}执行步骤: ${index}.选择${field_name}预期输出: 选择框${field_name}选择正确,转到下一步(步骤${next_index})判断测试结果:测试人:备注:- 重要级别:输入数据: ${input_data}执行步骤: 查看数据来源预期输出: 数据来源于${data_source}测试结果:测试人:备注:
手机号输入框:必填步骤:- 重要级别:输入数据: ${input_data}执行步骤: ${index}.输入${field_name}为空值预期输出: 手机号输入框${field_name}输入为空值,提示:不能为空,重新输入测试结果:测试人:备注:步骤:- 重要级别:输入数据: ${input_data}执行步骤: ${index}.输入正确的${field_name}预期输出: 手机号输入框${field_name}输入正确,转到下一步(步骤${next_index})判断测试结果:测试人:备注:- 重要级别:输入数据: ${input_data}执行步骤: ${index}.输入错误的${field_name}预期输出: 手机号输入框${field_name}输入错误,提示:手机号格式不正确测试结果:测试人:备注:- 重要级别:输入数据: ${input_data}执行步骤: ${index}.输入${field_name}不符合手机号格式预期输出: 手机号输入框${field_name}输入不符合手机号格式,提示:请输入正确的手机号测试结果:测试人:备注:- 重要级别:输入数据: ${input_data}执行步骤: ${index}.${field_name}最大长度为${max_length}预期输出: 输入框${field_name}输入长度超过最大值,提示:长度不能超过${max_length}测试结果:测试人:备注:- 重要级别:输入数据: ${input_data}执行步骤: ${index}.${field_name}最小长度为${min_length}预期输出: 输入框${field_name}输入长度小于最小值,提示:长度不能小于${min_length}测试结果:测试人:备注:- 重要级别:输入数据: ${input_data}执行步骤: ${index}.输入${field_name}超过最大长度预期输出: 手机号输入框${field_name}输入长度超过最大值测试结果:测试人:备注:- 重要级别:输入数据: ${input_data}执行步骤: ${index}.输入${field_name}超过最小长度预期输出: 手机号输入框${field_name}输入长度小于最小值测试结果:测试人:备注:- 重要级别:输入数据: ${input_data}执行步骤: ${index}.输入${field_name}包含数字预期输出: 手机号输入框${field_name}输入包含数字,输入成功测试结果:测试人:备注:- 重要级别:输入数据: ${input_data}执行步骤: ${index}.输入${field_name}包含字母预期输出: 手机号输入框${field_name}输入包含字母,字母无法数据测试结果:测试人:备注:- 重要级别:输入数据: ${input_data}执行步骤: ${index}.输入${field_name}包含特殊字符预期输出: 手机号输入框${field_name}输入包含特殊字符,特殊字符无法数据测试结果:测试人:备注:- 重要级别:输入数据: ${input_data}执行步骤: ${index}.输入${field_name}包含中文字符预期输出: 手机号输入框${field_name}输入包含中文字符,中文字符无法数据测试结果:测试人:备注:
邮箱输入框:必填步骤:- 重要级别:输入数据: ${input_data}执行步骤: ${index}.输入${field_name}为空值预期输出: 邮箱输入框${field_name}输入为空值,提示:不能为空,重新输入测试结果:测试人:备注:步骤:- 重要级别:输入数据: ${input_data}执行步骤: ${index}.输入正确的${field_name}预期输出: 邮箱输入框${field_name}输入正确,转到下一步(步骤${next_index})判断测试结果:测试人:备注:- 重要级别:输入数据: ${input_data}执行步骤: ${index}.输入错误的${field_name}预期输出: 邮箱输入框${field_name}输入错误,提示:邮箱格式不正确测试结果:测试人:备注:- 重要级别:输入数据: ${input_data}执行步骤: ${index}.输入${field_name}不符合邮箱格式预期输出: 邮箱输入框${field_name}输入不符合邮箱格式,提示:请输入正确的邮箱测试结果:测试人:备注:
附件上传:必填步骤:- 重要级别:输入数据: ${input_data}执行步骤: ${index}.上传${field_name}为空值预期输出: 附件上传框${field_name}上传失败,提示:请上传附件测试结果:测试人:备注:步骤:- 重要级别:输入数据: ${input_data}执行步骤: ${index}.上传${field_name}预期输出: 附件上传框${field_name}上传成功,转到下一步(步骤${next_index})判断测试结果:测试人:备注:- 重要级别:输入数据: ${input_data}执行步骤: ${index}.上传${field_name}超过最大大小预期输出: 附件上传框${field_name}上传失败,提示:附件大小不能超过${file_max_size}测试结果:测试人:备注:- 重要级别:输入数据: ${input_data}执行步骤: ${index}.上传${field_name}超过最小大小预期输出: 附件上传框${field_name}上传失败,提示:附件大小不能小于${file_min_size}测试结果:测试人:备注:- 重要级别:输入数据: ${input_data}执行步骤: ${index}.上传${field_name}不符合格式要求预期输出: 附件上传框${field_name}上传失败,提示:附件格式不符合要求测试结果:测试人:备注:- 重要级别:输入数据: ${input_data}执行步骤: ${index}.上传${field_name}不是${file_format}预期输出: 无法上传不是${file_format}格式的文件,提示:请上传${file_format}格式的文件测试结果:测试人:备注:- 重要级别:输入数据: ${input_data}执行步骤: ${index}.${field_name},附件格式限制预期输出: 附件上传框${field_name}只能上传${file_format}格式的文件测试结果:测试人:备注:- 重要级别:输入数据: ${input_data}执行步骤: ${index}.上传${field_name},附件大小限制预期输出: 附件上传框${field_name}只能上传${file_min_size}-${file_max_size}的文件测试结果:测试人:备注:- 重要级别:输入数据: ${input_data}执行步骤: ${index}.上传${field_name},附件数量限制预期输出: 附件上传框${field_name}只能上传${file_count}个文件,超过限制后提示:只能上传${file_count}个文件测试结果:测试人:备注:
时间选择器:必填步骤:- 重要级别:输入数据:执行步骤: ${index}.选择${field_name}为空值预期输出: 时间选择器${field_name}未选择,提示:请选择测试结果:测试人:备注:步骤:- 重要级别:输入数据:执行步骤: ${index}.选择${field_name}预期输出: 时间选择器${field_name}选择正确,转到下一步(步骤${next_index})判断测试结果:测试人:备注:- 重要级别:输入数据:执行步骤: ${index}.选择${field_name}不符合格式要求预期输出: 时间选择器${field_name}选择不符合格式要求,提示:请选择正确的日期测试结果:测试人:备注:- 重要级别:输入数据:执行步骤: ${index}.选择${field_name}超过最大日期预期输出: 时间选择器${field_name}选择日期超过最大日期,提示:请选择正确的日期测试结果:测试人:备注:- 重要级别:输入数据:执行步骤: ${index}.选择${field_name}超过最小日期预期输出: 时间选择器${field_name}选择日期超过最小日期,提示:请选择正确的日期测试结果:测试人:备注:
地图坐标选择器:必填步骤:- 重要级别:输入数据:执行步骤: ${index}.选择${field_name}为空值预期输出: 地图坐标选择器${field_name}未选择,提示:请选择测试结果:测试人:备注:步骤:- 重要级别:输入数据:执行步骤: ${index}.选择正确的${field_name}预期输出: 地图坐标选择器${field_name}选择正确,页面显示经纬度坐标,转到下一步(步骤${next_index})判断测试结果:测试人:备注:- 重要级别:输入数据:执行步骤: ${index}.选择不正确的${field_name}预期输出: 地图坐标选择器${field_name}选择不正确,提示:请选择正确的坐标测试结果:测试人:备注:
提交确定按钮:步骤:- 重要级别:输入数据:执行步骤: ${index}.点击确定按钮预期输出: 点击确定按钮,提交表单,并在表单中显示测试结果:测试人:备注:
提交取消按钮:步骤:- 重要级别:输入数据:执行步骤: ${index}.点击取消按钮预期输出: 点击取消按钮,关闭表单,不提交表单测试结果:测试人:备注:

程序case.py

# coding: utf-8
import yaml
from pandas import DataFrame
from string import Template
from copy import deepcopydef replaceTemplate(template_dict: dict, data_dict: dict):"""替换模板中的变量:return:"""data = deepcopy(template_dict)input_data = data.get('输入数据', '')step = data.get('执行步骤', '')expected_result = data.get('预期输出', '')if input_data is None:input_data = ''data.update({'输入数据': Template(input_data).safe_substitute(data_dict),'执行步骤': Template(step).safe_substitute(data_dict),'预期输出': Template(expected_result).safe_substitute(data_dict)})return dataif __name__ == '__main__':with open('template.yaml', 'r', encoding='utf-8') as fp:template = yaml.load(fp, Loader=yaml.FullLoader)with open('page.yaml', 'r', encoding='utf-8') as fp:page_fields = yaml.load(fp, Loader=yaml.FullLoader)# 遍历页面字段,生成用例cases = []for index, item in enumerate(page_fields):item: dictitem['index'] = index + 1item['next_index'] = index + 2item['input_data'] = ''is_required = item.get('is_required', False)type_steps: dict = template[item['type']]steps = type_steps['步骤']if is_required:steps.extend(type_steps['必填步骤'])for step in steps:data = replaceTemplate(step, item)cases.append(data)# 生成数据data_frame = DataFrame(cases)data_frame.to_excel('cases.xlsx', index=False)

示例page.yaml

- field_name: 队伍名称is_required: truemax_length: '50'min_length: '1'type: 普通输入框
- field_name: 负责区域is_required: truemax_length: '50'min_length: '1'type: 普通输入框
- field_name: 应急队长is_required: truemax_length: '50'min_length: '1'type: 普通输入框
- field_name: 应急电话is_required: truetype: 手机号输入框
- field_name: 所在位置max_length: '50'min_length: '1'type: 普通输入框
- field_name: 坐标定位is_required: truetype: 地图坐标选择器
- field_name: 附件file_count: 10个file_format: .rar .zip .doc .docx .pdffile_max_size: 20Mfile_min_size: 0Mtype: 附件上传
- field_name: 确定type: 提交确定按钮
- field_name: 取消type: 提交取消按钮

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com