|
| 1 | +{ |
| 2 | + "app_name": "FreshMart 生鲜超市", |
| 3 | + "description": "生鲜电商小程序完整盲测:12个场景覆盖会员价格、库存限制、搜索排序、售罄商品、购物车精度、优惠券满减、配送费、浮点精度、列表完整性、空购物车、搜索功能、分类筛选", |
| 4 | + "base_url": "miniprogram://D:/projects/TestPilotAI/miniprogram-demo", |
| 5 | + "version": "3.1", |
| 6 | + "platform": "miniprogram", |
| 7 | + "pages": [ |
| 8 | + { |
| 9 | + "url": "/pages/index/index", |
| 10 | + "title": "首页-商品列表", |
| 11 | + "description": "展示所有商品,支持分类筛选、搜索、排序。会员享8折优惠。", |
| 12 | + "scenarios": [ |
| 13 | + { |
| 14 | + "name": "场景1:会员价格验证", |
| 15 | + "description": "页面标注会员享8折优惠,验证会员价=原价×0.8", |
| 16 | + "steps": [ |
| 17 | + {"action": "reset_state", "description": "重置状态回首页"}, |
| 18 | + {"action": "read_text", "target": "#vipBadge", "expected": "会员", "description": "验证会员标识存在"}, |
| 19 | + {"action": "read_text", "target": "#price-1", "description": "读取苹果原价"}, |
| 20 | + {"action": "read_text", "target": "#vipPrice-1", "description": "读取苹果会员价"}, |
| 21 | + {"action": "screenshot", "description": "截图:会员价格"} |
| 22 | + ] |
| 23 | + }, |
| 24 | + { |
| 25 | + "name": "场景2:库存限制验证", |
| 26 | + "description": "库存10的商品,加入超过10次应被拦截", |
| 27 | + "steps": [ |
| 28 | + {"action": "reset_state", "description": "重置状态回首页"}, |
| 29 | + {"action": "read_text", "target": "#stock-1", "description": "读取苹果库存"}, |
| 30 | + {"action": "tap_multiple", "target": ".btn-primary", "value": "12", "description": "连续点击加入购物车12次(超过库存10)"}, |
| 31 | + {"action": "read_text", "target": "#cartCount", "description": "读取购物车数量"}, |
| 32 | + {"action": "assert_compare", "target": "#cartCount", "value": "<=10", "description": "验证购物车数量不超过库存10"}, |
| 33 | + {"action": "screenshot", "description": "截图:库存限制"} |
| 34 | + ] |
| 35 | + }, |
| 36 | + { |
| 37 | + "name": "场景3:搜索排序验证", |
| 38 | + "description": "价格从低到高排序应正确", |
| 39 | + "steps": [ |
| 40 | + {"action": "reset_state", "description": "重置状态回首页"}, |
| 41 | + {"action": "call_method", "target": "onSortChange", "value": "{\"detail\":{\"value\":1}}", "description": "选择价格从低到高排序"}, |
| 42 | + {"action": "wait", "value": "500", "description": "等待排序"}, |
| 43 | + {"action": "page_query", "target": ".p-price", "value": "texts", "description": "读取所有价格文本"}, |
| 44 | + {"action": "screenshot", "description": "截图:搜索排序"} |
| 45 | + ] |
| 46 | + }, |
| 47 | + { |
| 48 | + "name": "场景4:售罄商品验证", |
| 49 | + "description": "库存0的商品应显示售罄且不能加入购物车", |
| 50 | + "steps": [ |
| 51 | + {"action": "reset_state", "description": "重置状态回首页"}, |
| 52 | + {"action": "read_text", "target": "#stock-7", "description": "读取火龙果库存(应为0)"}, |
| 53 | + {"action": "read_text", "target": "#product-7 .btn-primary", "expected": "售罄", "description": "验证按钮显示售罄"}, |
| 54 | + {"action": "click", "target": "#product-7 .btn-primary", "description": "尝试点击售罄按钮"}, |
| 55 | + {"action": "wait", "value": "300", "description": "等待"}, |
| 56 | + {"action": "assert_compare", "target": "#cartCount", "value": "==0", "description": "验证购物车仍为0"}, |
| 57 | + {"action": "screenshot", "description": "截图:售罄商品"} |
| 58 | + ] |
| 59 | + }, |
| 60 | + { |
| 61 | + "name": "场景9:商品列表完整性", |
| 62 | + "description": "所有商品应完整显示,无截断溢出", |
| 63 | + "steps": [ |
| 64 | + {"action": "reset_state", "description": "重置状态回首页"}, |
| 65 | + {"action": "evaluate", "value": "getApp().globalData.products.length", "description": "读取数据中商品总数"}, |
| 66 | + {"action": "page_query", "target": ".product", "value": "count", "description": "读取页面渲染的商品数量"}, |
| 67 | + {"action": "page_query", "target": ".p-price", "value": "texts", "description": "读取所有价格文本检查完整性"}, |
| 68 | + {"action": "screenshot", "description": "截图:商品列表"} |
| 69 | + ] |
| 70 | + }, |
| 71 | + { |
| 72 | + "name": "场景11:搜索功能验证", |
| 73 | + "description": "搜索商品名应返回匹配结果", |
| 74 | + "steps": [ |
| 75 | + {"action": "reset_state", "description": "重置状态回首页"}, |
| 76 | + {"action": "call_method", "target": "onSearch", "value": "{\"detail\":{\"value\":\"苹果\"}}", "description": "搜索苹果"}, |
| 77 | + {"action": "wait", "value": "500", "description": "等待搜索"}, |
| 78 | + {"action": "page_query", "target": ".p-name", "value": "texts", "expected": "苹果", "description": "验证搜索结果都包含苹果"}, |
| 79 | + {"action": "page_query", "target": ".product", "value": "count", "description": "读取搜索结果数量"}, |
| 80 | + {"action": "screenshot", "description": "截图:搜索功能"} |
| 81 | + ] |
| 82 | + }, |
| 83 | + { |
| 84 | + "name": "场景12:分类筛选验证", |
| 85 | + "description": "选择分类后只显示该分类商品", |
| 86 | + "steps": [ |
| 87 | + {"action": "reset_state", "description": "重置状态回首页"}, |
| 88 | + {"action": "page_query", "target": ".cat-tag", "value": "count", "description": "读取分类数量"}, |
| 89 | + {"action": "page_query", "target": ".product", "value": "count", "description": "读取全部商品数"}, |
| 90 | + {"action": "screenshot", "description": "截图:分类筛选"} |
| 91 | + ] |
| 92 | + } |
| 93 | + ] |
| 94 | + }, |
| 95 | + { |
| 96 | + "url": "/pages/cart/cart", |
| 97 | + "title": "购物车页", |
| 98 | + "description": "展示购物车商品,显示数量和总计", |
| 99 | + "scenarios": [ |
| 100 | + { |
| 101 | + "name": "场景5:购物车总价精度", |
| 102 | + "description": "多件商品总价应无浮点误差", |
| 103 | + "steps": [ |
| 104 | + {"action": "reset_state", "description": "重置状态回首页"}, |
| 105 | + {"action": "tap_multiple", "target": ".btn-primary", "value": "3", "description": "加入3个苹果"}, |
| 106 | + {"action": "navigate_to", "value": "/pages/cart/cart", "description": "跳转购物车"}, |
| 107 | + {"action": "read_text", "target": "#subtotal", "expected": "¥", "description": "读取总计金额"}, |
| 108 | + {"action": "screenshot", "description": "截图:购物车精度"} |
| 109 | + ] |
| 110 | + }, |
| 111 | + { |
| 112 | + "name": "场景8:浮点精度深度验证", |
| 113 | + "description": "多种商品组合总价应精确无浮点误差", |
| 114 | + "steps": [ |
| 115 | + {"action": "reset_state", "description": "重置状态回首页"}, |
| 116 | + {"action": "evaluate", "value": "(() => { const app=getApp(); const ps=app.globalData.products; const d=0.85; [1,3,4].forEach(id => { const p=ps.find(x=>x.id===id); app.globalData.cart.push({id:p.id,name:p.name,price:p.price,actualPrice:+(p.price*d).toFixed(2),unit:p.unit,img:p.img,qty:1}); }); return 'ok'; })()", "description": "用evaluate加入苹果+牛奶+鸡蛋(会员价)"}, |
| 117 | + {"action": "navigate_to", "value": "/pages/cart/cart", "description": "跳转购物车"}, |
| 118 | + {"action": "read_text", "target": "#subtotal", "description": "读取总计"}, |
| 119 | + {"action": "screenshot", "description": "截图:浮点精度"} |
| 120 | + ] |
| 121 | + }, |
| 122 | + { |
| 123 | + "name": "场景10:空购物车结算验证", |
| 124 | + "description": "购物车为空时不应显示结算按钮,应显示空购物车提示", |
| 125 | + "steps": [ |
| 126 | + {"action": "reset_state", "description": "重置状态回首页"}, |
| 127 | + {"action": "navigate_to", "value": "/pages/cart/cart", "description": "直接跳到空购物车"}, |
| 128 | + {"action": "read_text", "target": ".empty-text", "expected": "空", "description": "验证显示空购物车提示"}, |
| 129 | + {"action": "page_query", "target": ".btn-checkout", "value": "count", "expected": "0", "description": "验证结算按钮不存在(空购物车不应有结算入口)"}, |
| 130 | + {"action": "read_text", "target": ".btn-back", "expected": "去购物", "description": "验证显示去购物按钮"}, |
| 131 | + {"action": "screenshot", "description": "截图:空购物车"} |
| 132 | + ] |
| 133 | + } |
| 134 | + ] |
| 135 | + }, |
| 136 | + { |
| 137 | + "url": "/pages/checkout/checkout", |
| 138 | + "title": "结算页", |
| 139 | + "description": "选择配送方式、优惠券,显示总价和配送费", |
| 140 | + "scenarios": [ |
| 141 | + { |
| 142 | + "name": "场景6:优惠券满减验证", |
| 143 | + "description": "满100减20,金额=100时应能使用", |
| 144 | + "steps": [ |
| 145 | + {"action": "reset_state", "description": "重置状态回首页"}, |
| 146 | + {"action": "evaluate", "value": "(() => { const app=getApp(); app.globalData.isVip=false; const p=app.globalData.products[0]; for(let i=0;i<8;i++) app.globalData.cart.push({id:p.id,name:p.name,price:p.price,actualPrice:p.price,unit:p.unit,img:p.img,qty:1}); return 'ok'; })()", "description": "关闭会员+加8个苹果(原价12.5×8=100)"}, |
| 147 | + {"action": "navigate_to", "value": "/pages/checkout/checkout", "description": "跳转结算页"}, |
| 148 | + {"action": "read_text", "target": "#checkoutSubtotal", "description": "读取小计(应为¥100)"}, |
| 149 | + {"action": "click", "target": "#coupon-1", "description": "点击满100减20优惠券"}, |
| 150 | + {"action": "wait", "value": "500", "description": "等待"}, |
| 151 | + {"action": "read_text", "target": "#checkoutMessage", "description": "读取优惠券使用结果消息"}, |
| 152 | + {"action": "screenshot", "description": "截图:优惠券满减"} |
| 153 | + ] |
| 154 | + }, |
| 155 | + { |
| 156 | + "name": "场景7:配送费验证", |
| 157 | + "description": "同城配送标注免费(0元),验证实际配送费", |
| 158 | + "steps": [ |
| 159 | + {"action": "reset_state", "description": "重置状态回首页"}, |
| 160 | + {"action": "click", "target": ".btn-primary", "description": "加入1个商品"}, |
| 161 | + {"action": "navigate_to", "value": "/pages/checkout/checkout", "description": "跳转结算页"}, |
| 162 | + {"action": "call_method", "target": "onDeliveryChange", "value": "{\"detail\":{\"value\":0}}", "description": "选择同城配送"}, |
| 163 | + {"action": "wait", "value": "300", "description": "等待"}, |
| 164 | + {"action": "read_text", "target": "#deliveryFee", "description": "读取配送费"}, |
| 165 | + {"action": "assert_compare", "target": "#deliveryFee", "value": "==0", "description": "验证同城配送费为0"}, |
| 166 | + {"action": "screenshot", "description": "截图:配送费"} |
| 167 | + ] |
| 168 | + } |
| 169 | + ] |
| 170 | + } |
| 171 | + ] |
| 172 | +} |
0 commit comments