利用GPT快速生成自动化代码
背景
上个月整理了业务的接口,发现需要编写较多的接口自动化代码,除了一些写接口,大部分查询接口都是通过调用-断言的方式编写,存在较多冗余代码,思考能否快速编写,然后去问GPT
回答1
- 先问GPT有没有快速生成指定格式的代码的方法,它推荐了使用模版
按照它推荐的方法,生成单个接口的自动化用例的确快多了
回答2
虽然这样做能提高编写单个用例的速度,但是我这里可是有100个接口,继续思考有没有继续提效果得的方法,看看能不能直接给我生成一波代码,先拿几个试验一下
看来它很快明白了表格里字段的含义
然后给一个例子:
他可以根据你的要求优化代码,比如合并同sevice的代码,最后是他合并后的结果,我只能说NB!!!:
public class GuideTaskReadServiceTest {
/**
* TODO IMPL
* com.youzan.guide.api.service.task.GuideTaskReadService.getTask
* 查询主任务信息
*/
@Test
public void getTaskTest() {
String servicePath = "com.youzan.guide.api.service.task.GuideTaskReadService";
String method = "getTask";
String param = "";
String expect = "";
String result = getTetherResultWithSC(servicePath, method, param);
Assert.assertEquals(JSONPath.read(result, "$.code"), 200);
Assert.assertTrue(JsonDifferHubber.diffJsonStringEx(result, expect, "requestId,updatedAt,createdAt"));
}
/**
* TODO IMPL
* com.youzan.guide.api.service.task.GuideTaskReadService.getNewCustomerTask
* 查询新客加好友任务信息
*/
@Test
public void getNewCustomerTaskTest() {
String servicePath = "com.youzan.guide.api.service.task.GuideTaskReadService";
String method = "getNewCustomerTask";
String param = "";
String expect = "";
String result = getTetherResultWithSC(servicePath, method, param);
Assert.assertEquals(JSONPath.read(result, "$.code"), 200);
Assert.assertTrue(JsonDifferHubber.diffJsonStringEx(result, expect, "requestId,updatedAt,createdAt"));
}
/**
* TODO IMPL
* com.youzan.guide.api.service.task.GuideTaskReadService.getTaskSummary
* 获取单个任务概要
*/
@Test
public void getTaskSummaryTest() {
String servicePath = "com.youzan.guide.api.service.task.GuideTaskReadService";
String method = "getTaskSummary";
String param = "";
String expect = "";
String result = getTetherResultWithSC(servicePath, method, param);
Assert.assertEquals(JSONPath.read(result, "$.code"), 200);
Assert.assertTrue(JsonDifferHubber.diffJsonStringEx(result, expect, "requestId,updatedAt,createdAt"));
}
}
继续传入更多接口,然后ctrl+C ctrl+V 搞定
可能的问题
-
有时候它会理解规则有问题或者偷懒,需要引导
-
聊天上下文有长度限制,不能一次性生成太多的代码,时间一长也容易遗忘规则
解决思路:
(1)使用允许更长上下文的AI,如Claude-100k
(2)分组或分批输出,固化规则的prompt
如:按service分组 或 按10个分批生成;每次生成前都重复规则
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!