目录
2024 年甘肃省职业院校技能大赛高职学生组
软件测试赛项竞赛任务书
任务一:功能测试(45 分)
任务二: 自动化测试(15 分)
任务三:性能测试(15 分)
任务四:单元测试(10 分)
任务五:接口测试(10 分)
1. 竞赛概述
1.1.竞赛时间
本次竞赛时间共为 8 小时,参赛选手自行安排任务进度,休息、饮水、如厕
等不设专门用时,统一含在竞赛时间内。
1.2.竞赛内容
功能测试的测试计划设计、测试用例设计、测试执行和 Bug 记录、测试报 告设计;自动化测试要求分析、工具使用、代码设计和测试执行等;性能测试要 求分析、工具使用和测试执行等;单元测试要求分析、代码设计、设计测试数据、 编写测试脚本和测试执行等;接口测试要求分析、工具使用和测试执行等;团队
合作能力以及文明竞赛等职业素养。
1.3.竞赛成绩
“软件测试”赛项成绩总分为 100 分,其中竞赛任务占 95 分,职业素养占 5
分,各部分权重如下:
序号 |
任务 |
权重 |
任务一 |
测试计划 |
5% |
测试用例 |
15% |
|
Bug 清单 |
20% |
|
测试报告 |
5% |
|
任务二 |
自动化测试 |
15% |
任务三 |
性能测试 |
15% |
任务四 |
单元测试 |
10% |
任务五 |
接口测试 |
10% |
—— |
职业素养 |
5% |
2. 竞赛须知
1. 本次 ftp 文档下载地址、用户名及密码,功能测试被测系统地址、用户名及密码,性能测试被测系统地址、用户名及密码,以竞赛现场发放为准;
2. 本次竞赛提交的所有成果物及 U 盘中不能出现参赛队及参赛选手信息,需要填写参赛队及参赛选手信息时以工位号代替;
3. 本次竞赛提交的 U 盘中只能保存竞赛成果文档,与竞赛成果无关的文件均不能出现在此 U 盘中;
4. 请不要擅自更改竞赛环境(包括强行关闭竞赛服务器),对于擅自更改 竞赛环境所造成的后果,由参赛选手自行承担,对于恶意破坏竞赛环境的参赛选手,根据大赛制度予以处理;
5. 竞赛过程中参赛选手必须及时保存需要提交的文档,未及时保存而造成相关文档内容缺失或无法保存,后果由参赛选手自行承担;
6. 自动化测试严格按照要求编写脚本,擅自恶意编写无限循环或破坏环境脚本造成系统死机或软件出现问题,后果由参赛选手自行承担;
7. 性能测试请严格按照要求设置并发数量和执行时间,擅自提高并发数量和延长执行时间造成的后果由参赛选手自行承担;
8. 性能测试过程中,参赛选手可根据需要针对性能测试被测系统进行“重置 系统”或“重启系统”操作。“重置系统”后等待 5 分钟,系统数据恢复到开赛初始 状态;“重启系统”后等待 5 分钟,系统将重新启动。重置/重启动作以服务器日 志记录为准,重置/重启不设专门用时(包括现场技术支持),后果由参赛选手自行承担;
9. 单元测试过程中,JDK 所含内容及其在系统中的路径设置擅自进行删除、 修改;Eclipse 中已建好的项目工程、已安装的相关jar 包擅自删除;Workspace 的默认目录擅自修改;以上事项若擅自进行修改而造成程序无法编译、运行,后
果由参赛选手自行承担;
10. 竞赛结束后请不要关闭竞赛设备,由于关闭竞赛设备造成的数据丢失等
后果由参赛选手自行承担;
11. 竞赛中出现各种问题请及时向现场裁判举手示意,不要影响其他选手。
3. 竞赛任务
3.1.竞赛环境
竞赛环境由服务器(线上环境,通过 VPN 连接访问)、客户机 1 、客户机 2
组成。
服务器部署说明:服务器中部署 ftp 文档下载、功能测试被测系统、性能测
试被测系统。
客户机部署说明:客户机 1 、2 均已安装通用环境、 自动化测试环境、性能
测试环境、单元测试环境、接口测试环境。
客户机访问说明:客户机 1 、2 均可访问 ftp 文档下载、功能测试被测系统、性能测试被测系统。
任务对应被测系统说明:任务一、二、五使用功能测试被测系统完成;任务 三使用性能测试被测系统完成;任务四无需被测系统。若相关任务未使用对应被 测系统进行而造成任务无法完成、被测系统崩溃等问题,后果由参赛选手自行承担。
被测系统内置数据说明:功能测试被测系统已内置任务一、二、五所需数据;
性能测试被测系统已内置任务三所需数据。
3.2.竞赛任务文档
序号 |
文档名 |
文档位置 |
1 |
A1-需求说明书 |
ftp 文档下载 |
2 |
A2-测试计划模板 |
|
3 |
A3-测试用例模板 |
|
4 |
A4-Bug 清单模板 |
|
5 |
A5-测试报告模板 |
|
6 |
A6- 自动化测试要求 |
|
7 |
A7- 自动化测试报告模板 |
|
8 |
A8-性能测试要求 |
|
9 |
A9-性能测试报告模板 |
|
10 |
A10-单元测试要求 |
|
11 |
A11-单元测试报告模板 |
|
12 |
A12-接口测试要求 |
|
13 |
A13-接口测试报告模板 |
3.3.任务组成
1 、测试计划(5 分)
(1)任务描述
针对功能测试任务,划分和界定测试范围,分解测试任务,预估测试风险、
测试工作量和测试进度。按照《A2-测试计划模板》完成本任务。
(2)任务要求
测试计划应包括以下内容:
① 概述:编写目的、项目背景。
② 测试任务:测试目的、测试参考文档、测试范围、测试提交文档。
③ 测试资源:软件配置、硬件配置、人力资源分配。
④ 功能分解:整体功能模块划分。
⑤ 测试安排。
⑥ 相关风险。
(3)任务成果
XX-A2-测试计划.doc(XX 代表工位号)。
2 、测试用例(15 分)
(1)任务描述
根据《A1-需求说明书》进行需求分析,理解业务功能,设计测试用例。按
照《A3-测试用例模板》完成本任务。
(2)任务要求
测试用例应包括以下内容:
① 按模块汇总测试用例数量;
② 测试用例应包含以下元素:模块名称、功能项、用例说明、前置条件、输入、执行步骤、预期结果、重要程度、执行用例测试结果。
(3)任务成果
XX-A3-测试用例.xls(XX 代表工位号)。
3 、Bug 清单(20 分)
(1)任务描述
根据《A1-需求说明书》和测试用例,执行功能测试,发现 Bug 、记录 Bug并对 Bug 截图。按照《A4-Bug 清单模板》完成本任务。
(2)任务要求
① Bug 清单应包括以下内容:
按模块和 Bug 严重程度汇总 Bug 数量;Bug 清单应包含以下元素:角色、模块名称、功能项、摘要描述、操作步骤、预期结果、实际结果、缺陷严重程度、附件说明(截图)。
② 使用谷歌浏览器(Chrome)执行 Web 端功能测试(含界面测试)。
(3)任务成果
XX-A4-Bug 清单.xls(XX 代表工位号)。
4 、测试报告(5 分)
(1)任务描述针对功能任务,分析整体测试过程,归纳总结测试结果,得出最终测试结论。
按照《A5-测试报告模版》完成本任务。
(2)任务要求
测试报告应包括以下内容:
① 概述:编写目的、项目背景。
② 人员安排。
③ 测试设计:测试用例设计方法、测试方法。
④ 用例汇总:用例汇总。
⑤ 测试回顾:进度回顾、功能测试回顾。
⑥ Bug 汇总:Bug 汇总。
⑦ 测试结论。
(3)任务成果
XX-A5-测试报告.doc(XX 代表工位号)。
一、任务要求
题目 1:按照以下步骤在 PyCharm 中进行自动化测试脚本编写并执行。
1 、设置智能时间等待 3 秒并将浏览器窗口最大化;
2 、引入 By 方法类;
3 、通过 ID 属性定位用户名输入框,并输入用户名 XTGLY; 4 、通过 NAME 属性定位密码输入框,并输入密码 123456;
5 、通过 CLASS_NAME 属性定位登录按钮,并单击;
6 、通过 PARTIAL_LINK_TEXT 方法定位供应商信息按钮,并使用 click()方法点击;
7 、通过 LINK_TEXT 复数定位方法点击页面中第一条数据的查看按钮;
8 、通过 window_handles 方法将标签页切换到第二个标签;
9 、使用 get_screenshot_as_file 对页面进行截图操作;
10 、设置 3 秒的强制时间等待;
11、点击查看客户弹窗右上角的 X;
12 、通过 quit 方法关闭浏览器。
题目 2:按照以下步骤在 PyCharm 中进行自动化测试脚本编写并执行。
1 、搭建 unittest 框架;
2 、引入 By 方法类;
3、定义setUp 方法启动浏览器、设置 3 秒智能时间等待并将浏览器窗口最大化;
4 、定义 tearDown 方法关闭浏览器;
5 、定义 test_denglu01 方法进入系统登录页面,通过 TAG_NAME 方法复数 形式定位用户名输入框,通过 TAG_NAME 方法复数形式定位密码输入框并输入账号和密码(XTGLY/123456),通过 CLASS_NAME 方法定位并点击登录按钮;
6 、定义 test_denglu02 方法进入系统登录页面,通过 NAME 方法定位用户名 输入框,通过 ID 方法定位密码输入框并输入账号和密码(XTGLY/123456), 通过 TAG_NAME 方法定位并点击登录按钮,使用 ID 方法定位商品分类下拉框,通过 Select 类中的 select_by_visible_text 方法选择商品分类为“ 自动化内置数据”;
7 、通过 unittest.main()方法执行测试用例。
二、报告编写根据自动化测试情况,参考自动化测试报告模版,按要求编写自动化测试脚
本并将全部脚本粘贴到模板中,完成自动化测试报告。
一、任务要求
题目 1:使用 LoadRunner 执行性能测试。
1 、脚本录制:
(1)脚本一:
. 脚本名称:ProductAdd。
. 脚本内容:系统管理员登录、进行新增商品操作。 具体要求如下:
. 所有脚本存放在 Action。商品名称前 2 位为固定值 SP ,固定值后面的字 符可任意设置。对新增商品保存操作设置事务,事务名称:T_SPAdd 。 设置检查点,使用新增商品成功,服务器响应正文内容中的 code 键值对 作为检查点。在新增商品保存操作前添加集合点,集合点名称:R_SPAd
d。
截图要求:一共 1 张图:①Action 中新增商品保存操作部分截图。
(2)脚本二:
. 脚本名称 BrandAdd。
. 脚本内容:系统管理员登录、进行新增商品品牌操作。 具体要求如下:
. 所有脚本存放在 Action 。商品品牌名称前 4 位为固定值 SPBR ,固定值 后面的字符可任意设置。对新增商品品牌保存操作设置事务,事务名称: T_BrandAdd 。设置检查点,使用新增商品品牌成功,服务器响应正文内 容中的 code 键值对作为检查点。在新增商品品牌保存操作前添加集合 点,集合点名称:R_BrandAdd。
截图要求:一共 1 张图:①Action 中新增商品品牌保存操作部分截图。
2 、脚本回放:使用回放功能对脚本的正确性进行校验。
(1)脚本一脚本回放具体要求如下:
. 对商品名称进行修改,前 4 位为固定值 SPHF ,固定值后面的字符可任 意设置。
. 运行脚本,查看回放结果,要求脚本回放能成功实现新增商品业务。 截图要求:一共 1 张图:①新增商品保存操作和回放日志截图。
(2)脚本二脚本回放具体要求如下:
. 对商品品牌名称进行修改,前 4 位为固定值 BRHF ,固定值后面的字符
可任意设置。. 运行脚本,查看回放结果,要求脚本回放能成功实现新增商品品牌业务。
3 、脚本参数设置要求:脚本回放成功后按要求设置脚本参数。
(1)脚本一参数化要求如下:
. 新建参数:参数名称:uniNo ,参数类型:唯一编号,编号从 5 开始,每 个 Vuser 的块大小为 100 ,编号格式:%05d ,每次迭代更新。
. 对商品名称进行参数化设置:商品名称前 4 位固定值 SPCS,固定值后面 接参数 uniNo。
. 对采购价进行参数化设置:参数名称:price1,参数类型:随机数字,随 机范围:1000~2000 ,数字格式:%lu ,每次迭代更新。
. 对销售价进行参数化设置:参数名称:price2,参数类型:随机数字,随 机范围:6000~8000 ,数字格式:%lu ,每次迭代更新。
. 脚本迭代次数 3 次。
截图要求:一共 1 张图:①新增商品保存操作和参数列表截图。
(2)脚本二参数化要求如下:
. 新建参数:参数名称:letter ,参数类型:文件,参数值:26 个英文字母 小写,每次出现随机取值。
. 对商品品牌名称进行参数化设置:商品品牌名称前 4 位固定值 BRCS, 固定值后面接 5 个随机小写字母。
. 脚本迭代次数 3 次。
截图要求:一共 1 张图:①新增商品品牌保存操作和参数列表截图。
4 、场景设置:按要求设置虚拟用户个数以及进行场景配置。
. 脚本修改:新增商品集合点前添加思考时间 40 秒,商品名称前 4 位固定 值修改为 SPCJ。
. 脚本修改:新增商品品牌集合点前添加思考时间 45 秒,商品品牌名称前 4 位固定值修改为 BRCJ。
. 选择新增商品和新增商品品牌两个脚本进行场景设置。
. 用户分配选择用户组模式。场景计划方式选择用户组。
. 新增商品集合点策略:当 80%的运行用户到达集合点时释放,超时时间 30 秒。
. 新增商品品牌集合点策略:当 5 个虚拟用户到达集合点时释放,超时时 间 20 秒。
. 全局计划:
n 新增商品:场景开始后立即启动组;在每个虚拟用户运行前将其初 始化;启动 20 个用户(每 2 秒增加 1 个)执行 5 分钟,执行完成后 停止 10 个用户(每 2 秒停止 1 个)执行 5 分钟,执行完成后停止所有用户(每 2 秒停止 1 个)。
n 新增商品品牌:在场景开始 1 分钟后启动组;同时初始化所有虚拟 用户;启动 10 个用户(每 2 秒增加 1 个)执行 5 分钟,执行完成后 停止所有用户(每 2 秒停止 1 个),再启动 10 个用户(每 2 秒增加1 个)执行 5 分钟,执行完成后停止所有用户(每 2 秒停止 1 个)。
截图要求:一共 2 张图,分别为:①新增商品场景设计界面截图;②新增商品品牌场景设计界面截图。
5 、图形结果分析:场景执行完成后对测试结果进行截图操作。
. 所有截图均需截取完整的结果图,包含下方的说明和左侧的树形结构。
截图要求:一共 1 张图:①Running Vusers - Throughput 截图。
题目 2:使用 JMeter 执行性能测试。
1 、脚本添加:
. 脚本文件名称:SuppAndCus。
. 测试计划名称:SuppAndCus。
测试计划下添加两个线程组:
(1)线程组一:
. 线程组名称:SuppAdd。
. 线程组内容:系统管理员登录、进行新增供应商操作。 具体要求如下:
. 供应商名称前 4 位为固定值 GYMC ,联系人前 4 位为固定值 GLXR ,固 定值后面的字符可任意设置。新增供应商保存操作请求名称:新增供应 商保存;对新增供应商保存操作设置事务,事务名称:T_SuppAdd 。设 置检查点,使用新增供应商成功服务器的响应正文内容作为检查点,检查点名称 Reg_SuppAdd 。在新增供应商保存操作前添加集合点,集合点名称:R_SuppAdd。
截图要求:一共 1 张图:①新增供应商保存操作截图。
(2)线程组二:
. 线程组名称 CusAdd。
. 线程组内容:系统管理员登录、进行新增客户操作。 具体要求如下:
. 客户名称前 4 位为固定值 KHMC,联系人前 3 位为固定值 LXR,固定值 后面的字符可任意设置。新增客户保存操作请求名称:新增客户保存; 对新增客户保存操作设置事务,事务名称:T_CusAdd。设置检查点,使 用新增客户成功服务器的响应正文内容作为检查点,检查点名称 Reg_C usAdd 。在新增客户保存操作前添加集合点,集合点名称:R_CusAdd。
截图要求:一共 1 张图:①新增客户保存操作截图。
2 、脚本回放:使用回放功能对脚本的正确性进行校验。
(1)线程组一回放具体要求如下:
. 对供应商名称进行修改,前 4 位为固定值 GYHF ,固定值后面的字符可 任意设置。
. 对联系人进行修改,前 4 位为固定值 LXHF ,固定值后面的字符可任意 设置。
. 运行脚本,查看回放结果,要求脚本回放能成功实现新增供应商业务。 (2)线程组二回放具体要求如下:
. 对客户名称进行修改,前 4 位为固定值 KHHF ,固定值后面的字符可任 意设置。
. 对联系人进行修改,前 4 位为固定值 LXHF ,固定值后面的字符可任意 设置。
. 运行脚本,查看回放结果,要求脚本回放能成功实现新增客户业务。
截图要求:一共 1 张图:①查看结果树 - 新增客户保存 - 响应正文界面截图。
3 、脚本参数设置要求:脚本回放成功后按要求设置脚本参数。
(1)线程组一参数化要求如下:
. 对供应商名称进行参数化设置:供应商名称前 4 位固定值 GYCS ,固定 值后面接函数 ThreadNum 和 time,time 函数获取当前时间到毫秒的时间 戳,存储结果的变量名:time_2。
. 对联系人进行参数化设置:联系人前 4 位固定值 LXCS,固定值后面接 T hreadNum 和 time_2。
. 对联系电话进行参数化设置:只参数化联系电话的后 8 位,使用 Rando m 函数生成长度为 8 位的任意数字。 脚本迭代次数 3 次。
截图要求:一共 1 张图:①新增供应商保存操作截图。
(2)线程组二参数化要求如下:
. 对客户名称进行参数化设置:客户名称前 4 位固定值 KHCS ,固定值后 面接函数 ThreadNum 和 time ,time 函数日期格式:HHmmss ,存储结果 的变量名:time2。 对联系人进行参数化设置:联系人前 4 位固定值 LXCS,固定值后面接 T hreadNum 和 time2。
. 对联系电话进行参数化设置:只参数化联系电话的后 8 位,使用 Rando m 函数生成长度为 8 位的任意数字。 脚本迭代次数 3 次。
截图要求:一共 1 张图:①新增客户保存操作截图。
4 、场景设置:按要求设置虚拟用户个数以及进行场景配置。
. 脚本修改:新增供应商保存操作前添加思考时间 25 秒;新增客户保存操 作前添加思考时间 35 秒;其他步骤添加思考时间 5 秒。
. 新增供应商集合点设置:模拟数量:5 ,超时时间 20 秒。
. 新增客户集合点设置:模拟数量:10 ,超时时间 45 秒。
. 场景配置:n 新增供应商场景配置:取样器错误后执行动作:继续;线程数:10;
Ramp-Up 时间:20 秒;循环 10 次。
n 新增客户场景配置:取样器错误后执行动作:继续;线程数:15;Ramp-Up 时间:30 秒;循环 10 次。
. 使用非 GUI 模式运行。
截图要求:一共 2 张图,分别为:①新增供应商场景配置截图;②新增客户集合点设置截图。
5 、图形结果:分析场景执行完成后对测试结果进行截图操作。
截图要求:一共 1 张图:①Dashboard-Statistics 截图。
二、报告编写
根据性能测试情况,参考性能测试报告模版,按要求截取性能测试过程和结 果截图并粘贴到性能测试报告,完成性能测试报告。
一、任务要求
题目 1:任意输入 2 个正整数值分别存入 x 、y 中,据此完成下述分析:若 x ≤0 或 y≤0 ,则提示:“输入不符合要求。” ;若 2 值相同,则提示“可以构建圆形 或正方形” ;若 2<|x-y|≤5 ,则提示“可以构建椭圆” ;若|x-y|>5 ,则提示“可以构建 矩形” ;若 0<|x-y|≤2,提示“可以构建长方形” 。编写程序代码,使用 JUnit 框架编 写测试类对编写的程序代码进行测试,测试类中设计最少的测试数据满足语句覆 盖测试,每条测试数据需要在测试类中编写一个测试方法。使用 assertEquals 判
断输入数据测试方法期望结果值和实际返回值是否一致。
题目 2:输入一个大写字母一个小写字母。根据输入的第一个字母和周几英 文单词的第一个大写字母判断是周几,如果无法根据第一个大写字母判断,则继 续根据输入的第二个小写字母进行判断,最终返回正确的英文周几的单词。编写 程序代码,使用 JUnit框架编写测试类对编写的程序代码进行测试,测试类中设 计最少的测试数据满足语句覆盖测试,每条测试数据需要在测试类中编写一个测试方法。使用 assertEquals 判断期望结果值和实际返回值是否一致。
二、报告编写根据单元测试情况,参考单元测试报告模版,按要求将编写的java 源代码、
测试类相关代码以及相关截图粘贴到模板中,完成单元测试报告。
一、任务要求
题目 1:登录接口脚本编写和执行测试。
1 、登录接口描述如下:接口功能:提供用户登录功能处理,根据传入的用户名和密码判断登录状态。
接口地址(根据实际系统 IP 及端口自行替换):
² http://XX.XX.XX.XX:XXXX/prod-api/auth/login。
请求方式:POST。
请求参数:
参数 |
必填 |
类型 |
说明 |
username |
Ture |
String |
用户名 |
password |
Ture |
String |
用户密码 |
roleId |
Ture |
Int |
登录 ID(默认 1) |
响应结果:
² 登录成功时返回:
{
"code": 200,
" "
msg : xxx,
"data": {
"access token": "xxx",
_
" "
name : xxx,
"photo": "xxx",
"expires_in": xxx
};
² 登录失败时返回(密码错误):
{
"msg": "登录密码错误",
"code": 500
}
² 登录失败时返回(密码为空):
{
"msg": "请输入密码",
"code": 500
}
2 、接口测试要求说明:
² 在 Postman 中新建 Collections 集,测试集命名为 Data_Driver;
² 在测试集 Data_Driver 下新建 data_driver 脚本;
² 在脚本 Body 中的 raw 下新建json 参数(username 、password 、roleId)进行
传值,其中 username 、password 参数改为变量接收数据驱动中的数据;
² 新建josn 文件保存接口数据驱动测试数据,josn 参数名为 username、passwo
rd;用户名和密码数据为:
username |
password |
XTGLY |
123456 |
XTGLY |
12345 |
XTGLY |
² 新建测试用例集 Data_Driver,执行 Run,在测试集合运行页面设置执行要求,
运行次数要求 3 次,请求间隔时间为 500ms,发送请求的 data 文件导入前面
的新建json 数据文件;
² 设置完成执行测试用例集;
² 截图要求:一共 6 张图,分别为:①测试用例脚本包含 URL 和 raw 中参数 相关内容截图;②测试用例集导入json 数据后预览数据的截图;③Collectio n Runner 页面的截图;④、⑤、⑥分别截图三条用例的测试报告中 Respons
e Body 的全部内容。
二、报告编写
根据接口测试情况,参考接口测试报告模版,按要求截取接口测试脚本和结
果截图并粘贴到接口测试报告中,完成接口测试报告。
4. 竞赛结果
4.1.提交位置
竞赛成果文档需在 U 盘中进行提交(所有文档在 U 盘中不得以压缩包形式 提交),评分以 U 盘为准。提交前请按照竞赛提交文档检查表进行检查。在 U 盘中以 XX 工位号建一个文件夹(例如 01),将所有竞赛成果文档保存至该文
件夹中,不按照要求命名后果自行承担。
4.2.文档要求
竞赛提交的所有文档中不能出现参赛队信息和参赛选手信息,竞赛文档需要 填写参赛队信息时以工位号代替(XX 代表工位号),竞赛文档需要填写参赛选 手信息时以工位号和参数选手编号代替(举例:21_02,21 代表工位号,02 代表2 号参赛选手)。
4.3.提交文档检查表
序号 |
文档名(XX 代表工位号) |
提交位置 |
1 |
XX-A2-测试计划 |
U 盘 |
2 |
XX-A3-测试用例 |
|
3 |
XX-A4-Bug 清单 |
|
4 |
XX-A5-测试报告 |
|
5 |
XX-A7- 自动化测试报告 |
|
6 |
XX-A9-性能测试报告 |
|
7 |
XX-A11-单元测试报告 |
|
8 |
XX-A13-接口测试报告 |
附件一:ftp 文档下载使用手册
1 、双击“此电脑” 图标,打开“此电脑” 窗口。
(样卷 A)
2024 年甘肃省职业院校技能大赛高职学生组
软件测试赛项竞赛任务书
1. 竞赛概述
1.1.竞赛时间
本次竞赛时间共为 8 小时,参赛选手自行安排任务进度,休息、饮水、如厕
等不设专门用时,统一含在竞赛时间内。
1.2.竞赛内容
功能测试的测试计划设计、测试用例设计、测试执行和 Bug 记录、测试报 告设计;自动化测试要求分析、工具使用、代码设计和测试执行等;性能测试要 求分析、工具使用和测试执行等;单元测试要求分析、代码设计、设计测试数据、 编写测试脚本和测试执行等;接口测试要求分析、工具使用和测试执行等;团队
合作能力以及文明竞赛等职业素养。
1.3.竞赛成绩
“软件测试”赛项成绩总分为 100 分,其中竞赛任务占 95 分,职业素养占 5
分,各部分权重如下:
序号 |
任务 |
权重 |
任务一 |
测试计划 |
5% |
测试用例 |
15% |
|
Bug 清单 |
20% |
|
测试报告 |
5% |
|
任务二 |
自动化测试 |
15% |
任务三 |
性能测试 |
15% |
任务四 |
单元测试 |
10% |
任务五 |
接口测试 |
10% |
—— |
职业素养 |
5% |
2. 竞赛须知
1. 本次 ftp 文档下载地址、用户名及密码,功能测试被测系统地址、用户名
及密码,性能测试被测系统地址、用户名及密码,以竞赛现场发放为准;
2. 本次竞赛提交的所有成果物及 U 盘中不能出现参赛队及参赛选手信息,
需要填写参赛队及参赛选手信息时以工位号代替;
3. 本次竞赛提交的 U 盘中只能保存竞赛成果文档,与竞赛成果无关的文件
均不能出现在此 U 盘中;
4. 请不要擅自更改竞赛环境(包括强行关闭竞赛服务器),对于擅自更改 竞赛环境所造成的后果,由参赛选手自行承担,对于恶意破坏竞赛环境的参赛选
手,根据大赛制度予以处理;
5. 竞赛过程中参赛选手必须及时保存需要提交的文档,未及时保存而造成
相关文档内容缺失或无法保存,后果由参赛选手自行承担;
6. 自动化测试严格按照要求编写脚本,擅自恶意编写无限循环或破坏环境
脚本造成系统死机或软件出现问题,后果由参赛选手自行承担;
7. 性能测试请严格按照要求设置并发数量和执行时间,擅自提高并发数量
和延长执行时间造成的后果由参赛选手自行承担;
8. 性能测试过程中,参赛选手可根据需要针对性能测试被测系统进行“重置 系统”或“重启系统”操作。“重置系统”后等待 5 分钟,系统数据恢复到开赛初始 状态;“重启系统”后等待 5 分钟,系统将重新启动。重置/重启动作以服务器日 志记录为准,重置/重启不设专门用时(包括现场技术支持),后果由参赛选手
自行承担;
9. 单元测试过程中,JDK 所含内容及其在系统中的路径设置擅自进行删除、 修改;Eclipse 中已建好的项目工程、已安装的相关jar 包擅自删除;Workspace 的默认目录擅自修改;以上事项若擅自进行修改而造成程序无法编译、运行,后
果由参赛选手自行承担;
10. 竞赛结束后请不要关闭竞赛设备,由于关闭竞赛设备造成的数据丢失等
后果由参赛选手自行承担;
11. 竞赛中出现各种问题请及时向现场裁判举手示意,不要影响其他选手。
3. 竞赛任务
3.1.竞赛环境
竞赛环境由服务器(线上环境,通过 VPN 连接访问)、客户机 1 、客户机 2
组成。
服务器部署说明:服务器中部署 ftp 文档下载、功能测试被测系统、性能测
试被测系统。
客户机部署说明:客户机 1 、2 均已安装通用环境、 自动化测试环境、性能
测试环境、单元测试环境、接口测试环境。
客户机访问说明:客户机 1 、2 均可访问 ftp 文档下载、功能测试被测系统、
性能测试被测系统。
任务对应被测系统说明:任务一、二、五使用功能测试被测系统完成;任务 三使用性能测试被测系统完成;任务四无需被测系统。若相关任务未使用对应被 测系统进行而造成任务无法完成、被测系统崩溃等问题,后果由参赛选手自行
承担。
被测系统内置数据说明:功能测试被测系统已内置任务一、二、五所需数据;
性能测试被测系统已内置任务三所需数据。
3.2.竞赛任务文档
序号 |
文档名 |
文档位置 |
1 |
A1-需求说明书 |
ftp 文档下载 |
2 |
A2-测试计划模板 |
|
3 |
A3-测试用例模板 |
|
4 |
A4-Bug 清单模板 |
|
5 |
A5-测试报告模板 |
|
6 |
A6- 自动化测试要求 |
|
7 |
A7- 自动化测试报告模板 |
|
8 |
A8-性能测试要求 |
|
9 |
A9-性能测试报告模板 |
|
10 |
A10-单元测试要求 |
|
11 |
A11-单元测试报告模板 |
|
12 |
A12-接口测试要求 |
|
13 |
A13-接口测试报告模板 |
3.3.任务组成
任务一:功能测试(45 分)
1 、测试计划(5 分)
(1)任务描述
针对功能测试任务,划分和界定测试范围,分解测试任务,预估测试风险、
测试工作量和测试进度。按照《A2-测试计划模板》完成本任务。
(2)任务要求
测试计划应包括以下内容:
① 概述:编写目的、项目背景。
② 测试任务:测试目的、测试参考文档、测试范围、测试提交文档。
③ 测试资源:软件配置、硬件配置、人力资源分配。
④ 功能分解:整体功能模块划分。
⑤ 测试安排。
⑥ 相关风险。
(3)任务成果
XX-A2-测试计划.doc(XX 代表工位号)。
2 、测试用例(15 分)
(1)任务描述
根据《A1-需求说明书》进行需求分析,理解业务功能,设计测试用例。按
照《A3-测试用例模板》完成本任务。
(2)任务要求
测试用例应包括以下内容:
① 按模块汇总测试用例数量;
② 测试用例应包含以下元素:模块名称、功能项、用例说明、前置条件、
输入、执行步骤、预期结果、重要程度、执行用例测试结果。
(3)任务成果
XX-A3-测试用例.xls(XX 代表工位号)。
3 、Bug 清单(20 分)
(1)任务描述
根据《A1-需求说明书》和测试用例,执行功能测试,发现 Bug 、记录 Bug
并对 Bug 截图。按照《A4-Bug 清单模板》完成本任务。
(2)任务要求
① Bug 清单应包括以下内容:
按模块和 Bug 严重程度汇总 Bug 数量;
Bug 清单应包含以下元素:角色、模块名称、功能项、摘要描述、操作步骤、
预期结果、实际结果、缺陷严重程度、附件说明(截图)。
② 使用谷歌浏览器(Chrome)执行 Web 端功能测试(含界面测试)。
(3)任务成果
XX-A4-Bug 清单.xls(XX 代表工位号)。
4 、测试报告(5 分)
(1)任务描述
针对功能任务,分析整体测试过程,归纳总结测试结果,得出最终测试结论。
按照《A5-测试报告模版》完成本任务。
(2)任务要求
测试报告应包括以下内容:
① 概述:编写目的、项目背景。
② 人员安排。
③ 测试设计:测试用例设计方法、测试方法。
④ 用例汇总:用例汇总。
⑤ 测试回顾:进度回顾、功能测试回顾。
⑥ Bug 汇总:Bug 汇总。
⑦ 测试结论。
(3)任务成果
XX-A5-测试报告.doc(XX 代表工位号)。
任务二: 自动化测试(15 分)
一、任务要求
题目 1:按照以下步骤在 PyCharm 中进行自动化测试脚本编写并执行。
1 、设置智能时间等待 3 秒并将浏览器窗口最大化;
2 、引入 By 方法类;
3 、通过 ID 属性定位用户名输入框,并输入用户名 XTGLY; 4 、通过 NAME 属性定位密码输入框,并输入密码 123456;
5 、通过 CLASS_NAME 属性定位登录按钮,并单击;
6 、通过 PARTIAL_LINK_TEXT 方法定位供应商信息按钮,并使用 click()方
法点击;
7 、通过 LINK_TEXT 复数定位方法点击页面中第一条数据的查看按钮;
8 、通过 window_handles 方法将标签页切换到第二个标签;
9 、使用 get_screenshot_as_file 对页面进行截图操作;
10 、设置 3 秒的强制时间等待;
11、点击查看客户弹窗右上角的 X;
12 、通过 quit 方法关闭浏览器。
题目 2:按照以下步骤在 PyCharm 中进行自动化测试脚本编写并执行。
1 、搭建 unittest 框架;
2 、引入 By 方法类;
3、定义setUp 方法启动浏览器、设置 3 秒智能时间等待并将浏览器窗口最大
化;
4 、定义 tearDown 方法关闭浏览器;
5 、定义 test_denglu01 方法进入系统登录页面,通过 TAG_NAME 方法复数 形式定位用户名输入框,通过 TAG_NAME 方法复数形式定位密码输入框并输入
账号和密码(XTGLY/123456),通过 CLASS_NAME 方法定位并点击登录按钮;
6 、定义 test_denglu02 方法进入系统登录页面,通过 NAME 方法定位用户名 输入框,通过 ID 方法定位密码输入框并输入账号和密码(XTGLY/123456), 通过 TAG_NAME 方法定位并点击登录按钮,使用 ID 方法定位商品分类下拉框,
通过 Select 类中的 select_by_visible_text 方法选择商品分类为“ 自动化内置数据”;
7 、通过 unittest.main()方法执行测试用例。
二、报告编写
根据自动化测试情况,参考自动化测试报告模版,按要求编写自动化测试脚
本并将全部脚本粘贴到模板中,完成自动化测试报告。
任务三:性能测试(15 分)
一、任务要求
题目 1:使用 LoadRunner 执行性能测试。
1 、脚本录制:
(1)脚本一:
. 脚本名称:ProductAdd。
. 脚本内容:系统管理员登录、进行新增商品操作。 具体要求如下:
. 所有脚本存放在 Action。商品名称前 2 位为固定值 SP ,固定值后面的字 符可任意设置。对新增商品保存操作设置事务,事务名称:T_SPAdd 。 设置检查点,使用新增商品成功,服务器响应正文内容中的 code 键值对 作为检查点。在新增商品保存操作前添加集合点,集合点名称:R_SPAd
d。
截图要求:一共 1 张图:①Action 中新增商品保存操作部分截图。
(2)脚本二:
. 脚本名称 BrandAdd。
. 脚本内容:系统管理员登录、进行新增商品品牌操作。 具体要求如下:
. 所有脚本存放在 Action 。商品品牌名称前 4 位为固定值 SPBR ,固定值 后面的字符可任意设置。对新增商品品牌保存操作设置事务,事务名称: T_BrandAdd 。设置检查点,使用新增商品品牌成功,服务器响应正文内 容中的 code 键值对作为检查点。在新增商品品牌保存操作前添加集合 点,集合点名称:R_BrandAdd。
截图要求:一共 1 张图:①Action 中新增商品品牌保存操作部分截图。
2 、脚本回放:使用回放功能对脚本的正确性进行校验。
(1)脚本一脚本回放具体要求如下:
. 对商品名称进行修改,前 4 位为固定值 SPHF ,固定值后面的字符可任 意设置。
. 运行脚本,查看回放结果,要求脚本回放能成功实现新增商品业务。 截图要求:一共 1 张图:①新增商品保存操作和回放日志截图。
(2)脚本二脚本回放具体要求如下:
. 对商品品牌名称进行修改,前 4 位为固定值 BRHF ,固定值后面的字符
可任意设置。
. 运行脚本,查看回放结果,要求脚本回放能成功实现新增商品品牌业务。
3 、脚本参数设置要求:脚本回放成功后按要求设置脚本参数。
(1)脚本一参数化要求如下:
. 新建参数:参数名称:uniNo ,参数类型:唯一编号,编号从 5 开始,每 个 Vuser 的块大小为 100 ,编号格式:%05d ,每次迭代更新。
. 对商品名称进行参数化设置:商品名称前 4 位固定值 SPCS,固定值后面 接参数 uniNo。
. 对采购价进行参数化设置:参数名称:price1,参数类型:随机数字,随 机范围:1000~2000 ,数字格式:%lu ,每次迭代更新。
. 对销售价进行参数化设置:参数名称:price2,参数类型:随机数字,随 机范围:6000~8000 ,数字格式:%lu ,每次迭代更新。
. 脚本迭代次数 3 次。
截图要求:一共 1 张图:①新增商品保存操作和参数列表截图。
(2)脚本二参数化要求如下:
. 新建参数:参数名称:letter ,参数类型:文件,参数值:26 个英文字母 小写,每次出现随机取值。
. 对商品品牌名称进行参数化设置:商品品牌名称前 4 位固定值 BRCS, 固定值后面接 5 个随机小写字母。
. 脚本迭代次数 3 次。
截图要求:一共 1 张图:①新增商品品牌保存操作和参数列表截图。
4 、场景设置:按要求设置虚拟用户个数以及进行场景配置。
. 脚本修改:新增商品集合点前添加思考时间 40 秒,商品名称前 4 位固定 值修改为 SPCJ。
. 脚本修改:新增商品品牌集合点前添加思考时间 45 秒,商品品牌名称前 4 位固定值修改为 BRCJ。
. 选择新增商品和新增商品品牌两个脚本进行场景设置。
. 用户分配选择用户组模式。场景计划方式选择用户组。
. 新增商品集合点策略:当 80%的运行用户到达集合点时释放,超时时间 30 秒。
. 新增商品品牌集合点策略:当 5 个虚拟用户到达集合点时释放,超时时 间 20 秒。
. 全局计划:
n 新增商品:场景开始后立即启动组;在每个虚拟用户运行前将其初 始化;启动 20 个用户(每 2 秒增加 1 个)执行 5 分钟,执行完成后 停止 10 个用户(每 2 秒停止 1 个)执行 5 分钟,执行完成后停止所
有用户(每 2 秒停止 1 个)。
n 新增商品品牌:在场景开始 1 分钟后启动组;同时初始化所有虚拟 用户;启动 10 个用户(每 2 秒增加 1 个)执行 5 分钟,执行完成后 停止所有用户(每 2 秒停止 1 个),再启动 10 个用户(每 2 秒增加
1 个)执行 5 分钟,执行完成后停止所有用户(每 2 秒停止 1 个)。
截图要求:一共 2 张图,分别为:①新增商品场景设计界面截图;②新增商
品品牌场景设计界面截图。
5 、图形结果分析:场景执行完成后对测试结果进行截图操作。
. 所有截图均需截取完整的结果图,包含下方的说明和左侧的树形结构。
截图要求:一共 1 张图:①Running Vusers - Throughput 截图。
题目 2:使用 JMeter 执行性能测试。
1 、脚本添加:
. 脚本文件名称:SuppAndCus。
. 测试计划名称:SuppAndCus。
测试计划下添加两个线程组:
(1)线程组一:
. 线程组名称:SuppAdd。
. 线程组内容:系统管理员登录、进行新增供应商操作。 具体要求如下:
. 供应商名称前 4 位为固定值 GYMC ,联系人前 4 位为固定值 GLXR ,固 定值后面的字符可任意设置。新增供应商保存操作请求名称:新增供应 商保存;对新增供应商保存操作设置事务,事务名称:T_SuppAdd 。设 置检查点,使用新增供应商成功服务器的响应正文内容作为检查点,检
查点名称 Reg_SuppAdd 。在新增供应商保存操作前添加集合点,集合点
名称:R_SuppAdd。
截图要求:一共 1 张图:①新增供应商保存操作截图。
(2)线程组二:
. 线程组名称 CusAdd。
. 线程组内容:系统管理员登录、进行新增客户操作。 具体要求如下:
. 客户名称前 4 位为固定值 KHMC,联系人前 3 位为固定值 LXR,固定值 后面的字符可任意设置。新增客户保存操作请求名称:新增客户保存; 对新增客户保存操作设置事务,事务名称:T_CusAdd。设置检查点,使 用新增客户成功服务器的响应正文内容作为检查点,检查点名称 Reg_C usAdd 。在新增客户保存操作前添加集合点,集合点名称:R_CusAdd。
截图要求:一共 1 张图:①新增客户保存操作截图。
2 、脚本回放:使用回放功能对脚本的正确性进行校验。
(1)线程组一回放具体要求如下:
. 对供应商名称进行修改,前 4 位为固定值 GYHF ,固定值后面的字符可 任意设置。
. 对联系人进行修改,前 4 位为固定值 LXHF ,固定值后面的字符可任意 设置。
. 运行脚本,查看回放结果,要求脚本回放能成功实现新增供应商业务。 (2)线程组二回放具体要求如下:
. 对客户名称进行修改,前 4 位为固定值 KHHF ,固定值后面的字符可任 意设置。
. 对联系人进行修改,前 4 位为固定值 LXHF ,固定值后面的字符可任意 设置。
. 运行脚本,查看回放结果,要求脚本回放能成功实现新增客户业务。
截图要求:一共 1 张图:①查看结果树 - 新增客户保存 - 响应正文界面截
图。
3 、脚本参数设置要求:脚本回放成功后按要求设置脚本参数。
(1)线程组一参数化要求如下:
. 对供应商名称进行参数化设置:供应商名称前 4 位固定值 GYCS ,固定 值后面接函数 ThreadNum 和 time,time 函数获取当前时间到毫秒的时间 戳,存储结果的变量名:time_2。
. 对联系人进行参数化设置:联系人前 4 位固定值 LXCS,固定值后面接 T hreadNum 和 time_2。
. 对联系电话进行参数化设置:只参数化联系电话的后 8 位,使用 Rando m 函数生成长度为 8 位的任意数字。
. 脚本迭代次数 3 次。
截图要求:一共 1 张图:①新增供应商保存操作截图。
(2)线程组二参数化要求如下:
. 对客户名称进行参数化设置:客户名称前 4 位固定值 KHCS ,固定值后 面接函数 ThreadNum 和 time ,time 函数日期格式:HHmmss ,存储结果 的变量名:time2。
. 对联系人进行参数化设置:联系人前 4 位固定值 LXCS,固定值后面接 T hreadNum 和 time2。
. 对联系电话进行参数化设置:只参数化联系电话的后 8 位,使用 Rando m 函数生成长度为 8 位的任意数字。
. 脚本迭代次数 3 次。
截图要求:一共 1 张图:①新增客户保存操作截图。
4 、场景设置:按要求设置虚拟用户个数以及进行场景配置。
. 脚本修改:新增供应商保存操作前添加思考时间 25 秒;新增客户保存操 作前添加思考时间 35 秒;其他步骤添加思考时间 5 秒。
. 新增供应商集合点设置:模拟数量:5 ,超时时间 20 秒。
. 新增客户集合点设置:模拟数量:10 ,超时时间 45 秒。
. 场景配置:
n 新增供应商场景配置:取样器错误后执行动作:继续;线程数:10;
Ramp-Up 时间:20 秒;循环 10 次。
n 新增客户场景配置:取样器错误后执行动作:继续;线程数:15;R
amp-Up 时间:30 秒;循环 10 次。
. 使用非 GUI 模式运行。
截图要求:一共 2 张图,分别为:①新增供应商场景配置截图;②新增客户
集合点设置截图。
5 、图形结果:分析场景执行完成后对测试结果进行截图操作。
截图要求:一共 1 张图:①Dashboard-Statistics 截图。
二、报告编写
根据性能测试情况,参考性能测试报告模版,按要求截取性能测试过程和结 果截图并粘贴到性能测试报告,完成性能测试报告。
任务四:单元测试(10 分)
一、任务要求
题目 1:任意输入 2 个正整数值分别存入 x 、y 中,据此完成下述分析:若 x ≤0 或 y≤0 ,则提示:“输入不符合要求。” ;若 2 值相同,则提示“可以构建圆形 或正方形” ;若 2<|x-y|≤5 ,则提示“可以构建椭圆” ;若|x-y|>5 ,则提示“可以构建 矩形” ;若 0<|x-y|≤2,提示“可以构建长方形” 。编写程序代码,使用 JUnit 框架编 写测试类对编写的程序代码进行测试,测试类中设计最少的测试数据满足语句覆 盖测试,每条测试数据需要在测试类中编写一个测试方法。使用 assertEquals 判
断输入数据测试方法期望结果值和实际返回值是否一致。
题目 2:输入一个大写字母一个小写字母。根据输入的第一个字母和周几英 文单词的第一个大写字母判断是周几,如果无法根据第一个大写字母判断,则继 续根据输入的第二个小写字母进行判断,最终返回正确的英文周几的单词。编写 程序代码,使用 JUnit框架编写测试类对编写的程序代码进行测试,测试类中设 计最少的测试数据满足语句覆盖测试,每条测试数据需要在测试类中编写一个测
试方法。使用 assertEquals 判断期望结果值和实际返回值是否一致。
二、报告编写
根据单元测试情况,参考单元测试报告模版,按要求将编写的java 源代码、
测试类相关代码以及相关截图粘贴到模板中,完成单元测试报告。
任务五:接口测试(10 分)
一、任务要求
题目 1:登录接口脚本编写和执行测试。
1 、登录接口描述如下:
接口功能:提供用户登录功能处理,根据传入的用户名和密码判断登录状态。
接口地址(根据实际系统 IP 及端口自行替换):
² http://XX.XX.XX.XX:XXXX/prod-api/auth/login。
请求方式:POST。
请求参数:
参数 |
必填 |
类型 |
说明 |
username |
Ture |
String |
用户名 |
password |
Ture |
String |
用户密码 |
roleId |
Ture |
Int |
登录 ID(默认 1) |
响应结果:
² 登录成功时返回:
{
"code": 200,
" "
msg : xxx,
"data": {
"access token": "xxx",
_
" "
name : xxx,
"photo": "xxx",
"expires_in": xxx
};
² 登录失败时返回(密码错误):
{
"msg": "登录密码错误",
"code": 500
}
² 登录失败时返回(密码为空):
{
"msg": "请输入密码",
"code": 500
}
2 、接口测试要求说明:
² 在 Postman 中新建 Collections 集,测试集命名为 Data_Driver;
² 在测试集 Data_Driver 下新建 data_driver 脚本;
² 在脚本 Body 中的 raw 下新建json 参数(username 、password 、roleId)进行
传值,其中 username 、password 参数改为变量接收数据驱动中的数据;
² 新建josn 文件保存接口数据驱动测试数据,josn 参数名为 username、passwo
rd;用户名和密码数据为:
username |
password |
XTGLY |
123456 |
XTGLY |
12345 |
XTGLY |
² 新建测试用例集 Data_Driver,执行 Run,在测试集合运行页面设置执行要求,
运行次数要求 3 次,请求间隔时间为 500ms,发送请求的 data 文件导入前面
的新建json 数据文件;
² 设置完成执行测试用例集;
² 截图要求:一共 6 张图,分别为:①测试用例脚本包含 URL 和 raw 中参数 相关内容截图;②测试用例集导入json 数据后预览数据的截图;③Collectio n Runner 页面的截图;④、⑤、⑥分别截图三条用例的测试报告中 Respons
e Body 的全部内容。
二、报告编写
根据接口测试情况,参考接口测试报告模版,按要求截取接口测试脚本和结
果截图并粘贴到接口测试报告中,完成接口测试报告。
4. 竞赛结果
4.1.提交位置
竞赛成果文档需在 U 盘中进行提交(所有文档在 U 盘中不得以压缩包形式 提交),评分以 U 盘为准。提交前请按照竞赛提交文档检查表进行检查。在 U 盘中以 XX 工位号建一个文件夹(例如 01),将所有竞赛成果文档保存至该文
件夹中,不按照要求命名后果自行承担。
4.2.文档要求
竞赛提交的所有文档中不能出现参赛队信息和参赛选手信息,竞赛文档需要 填写参赛队信息时以工位号代替(XX 代表工位号),竞赛文档需要填写参赛选 手信息时以工位号和参数选手编号代替(举例:21_02,21 代表工位号,02 代表
2 号参赛选手)。
4.3.提交文档检查表
序号 |
文档名(XX 代表工位号) |
提交位置 |
1 |
XX-A2-测试计划 |
U 盘 |
2 |
XX-A3-测试用例 |
|
3 |
XX-A4-Bug 清单 |
|
4 |
XX-A5-测试报告 |
|
5 |
XX-A7- 自动化测试报告 |
|
6 |
XX-A9-性能测试报告 |
|
7 |
XX-A11-单元测试报告 |
|
8 |
XX-A13-接口测试报告 |