@be-link/smart-test 1.0.1-beta.4 → 1.0.1-beta.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli/index.js
CHANGED
|
@@ -828,16 +828,26 @@ class HARConverter {
|
|
|
828
828
|
}
|
|
829
829
|
}
|
|
830
830
|
/**
|
|
831
|
-
* 生成 Mock 数据的 key
|
|
831
|
+
* 生成 Mock 数据的 key(使用 camelCase)
|
|
832
832
|
*/
|
|
833
833
|
generateMockKey(apiPath, method) {
|
|
834
|
-
//
|
|
835
|
-
// /api/user
|
|
834
|
+
// 将路径转换为驼峰命名,并移除所有特殊字符
|
|
835
|
+
// /api/user-info -> apiUserInfo
|
|
836
|
+
// /product-detail -> productDetail
|
|
836
837
|
const parts = apiPath
|
|
837
838
|
.split('/')
|
|
838
839
|
.filter((p) => p)
|
|
839
|
-
.map((
|
|
840
|
-
|
|
840
|
+
.map((part) => {
|
|
841
|
+
// 移除特殊字符并转换为 PascalCase
|
|
842
|
+
return part
|
|
843
|
+
.split(/[-_\s]+/) // 按短横线、下划线、空格分割
|
|
844
|
+
.filter((word) => word) // 过滤空字符串
|
|
845
|
+
.map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())
|
|
846
|
+
.join('');
|
|
847
|
+
});
|
|
848
|
+
// 拼接方法名和路径:getProductDetail
|
|
849
|
+
const pathPart = parts.join('');
|
|
850
|
+
return method.toLowerCase() + pathPart;
|
|
841
851
|
}
|
|
842
852
|
/**
|
|
843
853
|
* 生成 Playwright Mock 代码
|
|
@@ -1007,7 +1017,26 @@ ${requestSummary}
|
|
|
1007
1017
|
6. 根据请求类型,生成合适的测试场景(如表单提交、数据加载等)
|
|
1008
1018
|
7. 使用 Playwright 的最佳实践
|
|
1009
1019
|
8. 包含有意义的断言
|
|
1010
|
-
9.
|
|
1020
|
+
9. **所有注释必须使用中文**,代码简洁清晰
|
|
1021
|
+
10. test.describe 和 test 的描述文本也使用中文
|
|
1022
|
+
|
|
1023
|
+
## 示例格式
|
|
1024
|
+
\`\`\`typescript
|
|
1025
|
+
test.describe('产品详情页面测试', () => {
|
|
1026
|
+
test.beforeEach(async ({ page }) => {
|
|
1027
|
+
// 设置 Mock 数据
|
|
1028
|
+
await mockProductDetailApis(page);
|
|
1029
|
+
});
|
|
1030
|
+
|
|
1031
|
+
test('应该成功加载页面', async ({ page }) => {
|
|
1032
|
+
// 访问页面
|
|
1033
|
+
await page.goto('${url}');
|
|
1034
|
+
|
|
1035
|
+
// 验证页面加载
|
|
1036
|
+
await expect(page).toHaveURL('${url}');
|
|
1037
|
+
});
|
|
1038
|
+
});
|
|
1039
|
+
\`\`\`
|
|
1011
1040
|
|
|
1012
1041
|
请直接返回测试代码,不需要额外的说明。
|
|
1013
1042
|
`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"har-converter.d.ts","sourceRoot":"","sources":["../../src/recorder/har-converter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAY,MAAM,SAAS,CAAC;AAGjE;;GAEG;AACH,qBAAa,YAAY;IACvB;;OAEG;IACH,KAAK,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,OAAO;IAiB1C;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA8BzB;;OAEG;IACG,OAAO,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAW9E;;OAEG;IACH,gBAAgB,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAyCjE;;OAEG;IACH,OAAO,CAAC,cAAc;IAStB;;OAEG;IACH,OAAO,CAAC,eAAe;
|
|
1
|
+
{"version":3,"file":"har-converter.d.ts","sourceRoot":"","sources":["../../src/recorder/har-converter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAY,MAAM,SAAS,CAAC;AAGjE;;GAEG;AACH,qBAAa,YAAY;IACvB;;OAEG;IACH,KAAK,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,OAAO;IAiB1C;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA8BzB;;OAEG;IACG,OAAO,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAW9E;;OAEG;IACH,gBAAgB,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAyCjE;;OAEG;IACH,OAAO,CAAC,cAAc;IAStB;;OAEG;IACH,OAAO,CAAC,eAAe;IAqBvB;;OAEG;IACH,gBAAgB,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IA2CtE;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAe1B;;OAEG;IACH,OAAO,CAAC,UAAU;IAIlB;;OAEG;IACH,OAAO,CAAC,YAAY;IAOpB;;OAEG;IACG,YAAY,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAWtG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-generator.d.ts","sourceRoot":"","sources":["../../src/recorder/test-generator.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG/D;;GAEG;AACH,qBAAa,aAAa;IAGZ,OAAO,CAAC,MAAM;IAF1B,OAAO,CAAC,MAAM,CAAuB;gBAEjB,MAAM,EAAE,eAAe;IAW3C;;OAEG;IACG,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA+CpH;;OAEG;IACH,OAAO,CAAC,WAAW;
|
|
1
|
+
{"version":3,"file":"test-generator.d.ts","sourceRoot":"","sources":["../../src/recorder/test-generator.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG/D;;GAEG;AACH,qBAAa,aAAa;IAGZ,OAAO,CAAC,MAAM;IAF1B,OAAO,CAAC,MAAM,CAAuB;gBAEjB,MAAM,EAAE,eAAe;IAW3C;;OAEG;IACG,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA+CpH;;OAEG;IACH,OAAO,CAAC,WAAW;IAmDnB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA2BzB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAmDzB;;OAEG;IACH,OAAO,CAAC,YAAY;IAOpB;;OAEG;IACG,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAWvF;;OAEG;IACH,OAAO,CAAC,UAAU;CAGnB"}
|
package/package.json
CHANGED