首页 > 其他分享 >利用GPT快速生成自动化代码

利用GPT快速生成自动化代码

时间:2023-07-05 10:33:51浏览次数:46  
标签:String service 代码 servicePath result 自动化 GPT method expect

背景

上个月整理了业务的接口,发现需要编写较多的接口自动化代码,除了一些写接口,大部分查询接口都是通过调用-断言的方式编写,存在较多冗余代码,思考能否快速编写,然后去问GPT

回答1

  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个分批生成;每次生成前都重复规则

标签:String,service,代码,servicePath,result,自动化,GPT,method,expect
From: https://www.cnblogs.com/opama/p/17527846.html

相关文章

  • 怎么做接口自动化?一名功能测试的心路历程
    小帅是一名功能测试工程师,最近参与的项目接口异常复杂,发版非常频繁,每次回归测试都得很久,项目负责人决定为这个项目搭建接口自动化流程,提高测试效率。这份重任最后还是到了小帅头上,问题来了,要搭建自动化测试,首先得精通一门编程语言,作为一名功能测试小帅感觉头都要大了,自己也只会简......
  • 客服系统机器人源码-微信专属个人助理可对接GPT
    我们大家都见过很多微信机器人,对接了GPT以后效果非常好,可以作为微信群里的助理,帮助我们回答各种问题 现在我来分享一下微信机器人的源码,该源码是golang开发,可以实现模拟个人微信桌面版登录,监听到微信的各种消息。下面就是完整代码packagemainimport("fmt""gi......
  • 从零搭建SpringBoot3一,手动编写一套属于自己风格的代码生成器一键生成系统
    简介虽然java的代码生成工具有很多,可是很多时候不是自己喜欢的风格,改起来比较困难,所以我准备从零和大家一起搭建一套基于springboot3.0的框架,这次就先搞定一套代码生成功能,后续再不断的完善其它我们使用到的三方库:beelt模版引擎,用于生成代码。官网:http://ibeetl.com......
  • Java17新特性及代码示例:还在使用Java8? 这5个Java17新功能,你会喜欢的
    SpringBoot3.0最低支持JDK17,各开源软件正在全面拥抱JDK17.有升级计划的调查受访者中,37%的人计划在未来六个月内升级到2021年9月份发布的LTS版本JDK17。另有25%的人计划在未来6到12个月内升级到JDK17。这5个你喜欢的JDK17新功能,会让你升级JDK17吗?1.record类(记录类)传统的......
  • 代码随想录|动态规划
     392.判断子序列 115.不同的子序列   583. 两个字符串的删除操作  72. 编辑距离 编辑距离总结篇392.判断子序列和昨天的最长重复子串一样,只要计算两者的重复长度是不是和s一样就行了。但是还是不如双指针的时间复杂度O(nm)O(nm)classSolution:de......
  • 代码随想录|动态规划-编辑距离
     392.判断子序列 115.不同的子序列   583. 两个字符串的删除操作  72. 编辑距离 编辑距离总结篇392.判断子序列和昨天的最长重复子串一样,只要计算两者的重复长度是不是和s一样就行了。但是还是不如双指针的时间复杂度O(nm)O(nm)classSolution:de......
  • 将代码和笔记之类的保存到数据库
    平时记录在工作中,会把随手查到的内容,记在文件里面,时间一久,比较零乱,文件太长,在里面查找也不方便。于是想到随便整理一下存数据库得了。先创建数据库,mysql8支持全文索引,自带分词器,用起来很方便。CREATETABLE`books`(`id`intunsignedNOTNULLAUTO_INCREMENT,`title`......
  • 自动化测试到底是啥?
    什么是自动化测试?顾名思义就是以程序测试程序,自动执行指定动作,实现测试目的。以代码实现测试思维,以脚本替代手工执行。从简单的独立功能脚本到依托自动化框架运行的脚本集合都属于自动化测试范畴。本文旨在通过讨论以下几个方面,总结自动化测试价值最大化的经验。一、什么项目适......
  • 象群游牧优化算法(EHO)(Matlab完整代码实现)
    ......
  • JeecgBoot低代码开发平台与达梦数据完成兼容性互认证
    近日,JeecgBoot与达梦数据库管理系统V8完成兼容性认证测试;通过双方共同测试表明,Jeecgboot低代码开发平台与达梦数据库管理系统V8,相互兼容,系统功能运行稳定,能够满足用户更多的性能需求;并签署产品兼容互认证明。JeecgBoot将持续进行更多的国产化软件及国产化服务器的兼容性测试,将会不......