适用项目:线上商品的销售与运营平台
复习状态:已复习 1 次 (2026-05-22T03:49:04)
Web 测试是针对基于浏览器或移动端 Web 页面的系统进行的测试,主要验证页面功能、表单输入、用户交互、前后端接口协作以及高并发访问下的响应能力是否正确。线上商品销售与运营平台大量业务都通过 Web 页面完成,包括商品搜索、商品详情展示、购物车操作、订单提交、收货地址填写、优惠券领取、支付跳转和运营活动配置等。如果 Web 页面存在输入校验不严、响应速度慢或高峰期无法承载访问量等问题,就会直接影响用户购买体验和平台交易转化率。因此,在本项目中,我将 Web 测试作为系统测试的重要组成部分,重点围绕表单测试、负载测试和压力测试开展验证,以保证平台页面功能正确、性能稳定,并能支撑大促活动期间的访问压力。
首先,我对平台中的关键表单进行了 Web 表单测试。表单测试主要验证页面输入项的必填性、数据格式、边界值、默认值、错误提示和提交后的处理结果是否正确。在本项目中,我重点测试了用户注册登录表单、收货地址表单、购物车数量修改、订单提交表单、优惠券配置表单和商品上下架表单。例如在收货地址表单中,我分别输入空手机号、10 位手机号、11 位合法手机号、含特殊字符的收货人姓名和超长详细地址,验证系统是否给出正确提示;在购物车数量输入框中,我设计了购买数量为 0、1、999 和超过库存数量的测试数据,验证页面和后端是否同时限制非法输入;在优惠券配置表单中,我设计了满减金额为空、门槛金额小于优惠金额、活动结束时间早于开始时间等异常数据。通过 210 条表单测试用例,我们发现了 14 个前端校验问题和 6 个后端接口校验问题,其中包括购物车页面允许输入负数数量的问题。修复后,核心表单提交成功率稳定在 99% 以上,非法输入均能被拦截并给出明确提示。
其次,我对平台 Web 页面进行了负载测试。负载测试是在逐步增加并发用户数或请求量的情况下,观察系统响应时间、吞吐量、CPU、内存、数据库连接数等指标是否仍处于可接受范围。在本项目中,我使用 JMeter 模拟用户浏览首页、搜索商品、查看商品详情、加入购物车和提交订单等典型路径,并按照 500、1000、2000、3000 并发用户逐步增加负载。测试过程中,我通过 Prometheus 和 Grafana 监控网关、商品服务、订单服务、库存服务和数据库的资源占用情况。测试发现,当并发用户达到 2000 时,商品详情页平均响应时间约为 420 毫秒,订单提交平均响应时间约为 680 毫秒;当并发用户达到 3000 时,订单服务数据库连接池接近上限,部分请求响应时间超过 2 秒。针对该问题,我调整了连接池参数,并对商品详情页增加 Redis 缓存。优化后,平台可以稳定支撑约 2500 QPS 的商品查询请求和每分钟约 1800 笔订单创建请求,核心接口 95% 响应时间控制在 800 毫秒以内。
最后,我对平台进行了压力测试。压力测试是在超过正常业务负载的情况下,持续增加访问量,观察系统在极限条件下的瓶颈、失败方式和恢复能力。在线上商品销售平台中,压力测试重点针对大促活动和秒杀场景,因为这类场景会在短时间内产生大量商品详情查询、优惠券领取和订单提交请求。我使用 JMeter 和压测平台模拟秒杀活动,将商品详情查询压力从 3000 QPS 逐步提高到 5000 QPS,将下单请求从每分钟 1800 笔提高到每分钟 3000 笔,并持续运行 30 分钟。测试发现,在未限流时,库存服务出现短时间排队,Redis 热点库存键访问量过高,导致部分下单接口超时。随后我在网关和秒杀接口增加限流策略,对热点商品库存采用本地缓存加 Redis 扣减,并对下单失败请求返回明确提示。优化后,系统在 5000 QPS 查询压力下未发生服务崩溃,每分钟可稳定处理约 2600 笔秒杀下单请求,库存超卖次数为 0,验证了平台在极端访问压力下的承载能力。