惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

G
Google Developers Blog
博客园 - 司徒正美
Last Week in AI
Last Week in AI
Recent Announcements
Recent Announcements
Y
Y Combinator Blog
博客园 - 聂微东
M
MIT News - Artificial intelligence
博客园_首页
Jina AI
Jina AI
博客园 - 叶小钗
酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hackread – Cybersecurity News, Data Breaches, AI and More
J
Java Code Geeks
F
Fortinet All Blogs
aimingoo的专栏
aimingoo的专栏
小众软件
小众软件
Vercel News
Vercel News
The Cloudflare Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
云风的 BLOG
云风的 BLOG
N
Netflix TechBlog - Medium
B
Blog
Google DeepMind News
Google DeepMind News
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

博客园 - opama

AI智能用例整理 AI 执行测试用例 AI 编写接口自动化用例 基于知识库的需求评审到用例生成的智能辅助 AI 在工作中的一些使用 不要忘记好的测试也是个业务专家 打造个人面试助手 看数类需求测试方法 AI辅助测试用例生成 本地部署AI知识库 基于自己知识库的机器人试用 A卡在ubuntu下部署stable-diffusion-webui 线上问题SLA治理 AI绘图新手入坑 airtest使用案例一则 airtest初步使用 测试设计左移实践 接口越权扫描平台初探 通过阅读代码来优化测试执行 左移白盒测试实践 通过机器人通知提效的那些事情 《敏捷革命》读书感想 《SAAS创业指南》拆书笔记——产品打磨和商业模式初步验证
利用GPT快速生成自动化代码
opama · 2023-07-05 · via 博客园 - opama

背景

上个月整理了业务的接口,发现需要编写较多的接口自动化代码,除了一些写接口,大部分查询接口都是通过调用-断言的方式编写,存在较多冗余代码,思考能否快速编写,然后去问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个分批生成;每次生成前都重复规则