写点什么

【连载 23】性能测试实践——超时结账第三回合

作者:FunTester
  • 2025-03-16
    河北
  • 本文字数:1298 字

    阅读完需:约 4 分钟

3.7.3 超市结账第三回合:人性化设计的进一步探索

当小八将最新的测试报告发给收银员们后,本以为大家会为优化后的结果感到满意,却没想到收银员们纷纷反馈:“测试强度太高了,我们根本吃不消!”在实际工作中,收银员们需要适当的休息,即使是在岗位上。因此,大家对测试结果依然持怀疑态度,要求在设计测试用例时增加休息时间。


一位收银员提议:“在现有的三个阶段基础上,增加一个休息阶段。规则是:如果一个收银员连续工作超过 30 分钟,就休息 2 分钟。”然而,这个提议刚说完,就有人提出了反对意见:“这个休息时间只考虑了男性收银员的需求,女性收银员需要更多的休息时间,至少 5 分钟。”


经过一番坦诚而友好的讨论,小八决定采纳员工的意见:男性收银员每连续工作 30 分钟,休息 2 分钟;女性收银员每连续工作 30 分钟,休息 5 分钟。小八超市共有 2 名男性收银员和 6 名女性收银员,这一调整充分考虑了员工的实际情况。


于是,测试用例需要再次调整,改动点包括:


  1. 增加收银员的性别属性,并设置对应的休息时间。

  2. 增加收银员休息阶段,根据需求实现休息功能。


首先,在多线程任务类中增加以下属性:


/** * 性别,1:男,2:女 */public int sex;
/** * 单次休息时间,单位分钟 * 男性员工:2分钟;女性员工5分钟 */public int restTime;
/** * 最大工作时间,单位分钟 */public int maxWorkTime;
/** * 上一次开始工作时间,毫秒时间戳 */public long lastStartWorkTime;
复制代码


然后,修改构造方法以初始化这些属性:


/** * 构造方法 * @param totalNum 执行的总次数 * @param sex 性别 */public SupermarketCheckoutTaskThird(int totalNum, int sex) {    this.totalNum = totalNum;// 设置执行的总次数    this.costTime = new ArrayList<>(totalNum);// 初始化耗时收集集合类容量    this.sex = sex;// 设置性别    this.maxWorkTime = 30;// 设置最大工作时间    this.restTime = sex == 1 ? 2 : 5;// 设置单次休息时间    priceCostTime = new AtomicLong();// 初始化计价耗时统计    payCostTime = new AtomicLong();// 初始化支付耗时统计    packCostTime = new AtomicLong();// 初始化打包耗时统计}
复制代码


before() 方法中设置最近一次工作时间:


/** * 前置处理 */@Overridepublic void before() {    super.before();    lastStartWorkTime = System.currentTimeMillis();// 设置开始工作时间}
复制代码


接下来,设计收银员休息阶段的 rest() 方法:


/** * 休息 */public void rest() {    long timeMillis = System.currentTimeMillis();// 当前时间    if (timeMillis - lastStartWorkTime > maxWorkTime * 60 * 1000) {        ThreadTool.sleep(restTime * 60 * 1000);// 休息        lastStartWorkTime = System.currentTimeMillis();// 设置开始工作时间    }}
复制代码


最后,将 rest() 方法嵌入到 test() 方法中,确保收银员在工作过程中能够按时休息。


通过这次改进,小八不仅优化了测试用例,还进一步体现了对员工的关怀。技术测试的最终目的是为了提升效率和用户体验,但在这个过程中,绝不能忽视人的需求。只有让员工在舒适的状态下工作,才能真正实现效率与人性化的双赢。

发布于: 刚刚阅读数: 2
用户头像

FunTester

关注

公众号:FunTester,800篇原创,欢迎关注 2020-10-20 加入

Fun·BUG挖掘机·性能征服者·头顶锅盖·Tester

评论

发布
暂无评论
【连载 23】性能测试实践——超时结账第三回合_FunTester_InfoQ写作社区