教你如何根据需求编写测试用例,不用写一行代码,使用ChatGPT4自动完成。

news2024/10/5 17:19:57

首先来张效果图,需求我是放到requirements.txt文档里,输出的测试用例是放到test_case1.txt,整个代码我是让ChatGPT4自动给我写的。
在这里插入图片描述
我用的prompt提示语是:
我的想法是这样,通过Python代码,和API keys来实现,读取产品需求说明书文档,自动产生测试用例文档。能否实现,请给我具体的Python实现代码。
(这里我需要说明会出现二个问题,一个是国内访问openai会有限制,所以肯定需要加上vpn代理;第二个问题是给的测试用例格式不好,我们可以直接给他一个格式,让它从新写。)
在这里插入图片描述
解决问题一:关于vpn的问题,我这里选择了第二种处理方式

import os

os.environ["HTTPS_PROXY"] = "http://127.0.0.1:1080"

下面是截图
在这里插入图片描述
问题二:关于测试用例格式,我是这么提示的
你刚刚生成的代码是可以成功运行的,非常感谢。
我现在希望你修改代码,让它安装我要求的格式来输出测试用例,格式如下

P2
测试目标:验证系统账户不受有效期限制
测试步骤:

使用管理员账户登录,尝试设置系统账户的有效期。
记录系统账户的登录时间,让系统账户超过设定的有效期不登录。
在超过有效期后,尝试使用系统账户登录,观察是否能正常登录。
预期结果:

步骤1中,系统提示无法设置系统账户的有效期,验证通过。
步骤2中,系统账户成功登录。
步骤3中,在超过设定的有效期后,系统账户仍然能正常登录,验证通过。
P3
测试目标:验证账户有效期设置范围
测试步骤:

使用管理员账户登录,尝试设置非系统账户的有效期为小于10天和大于720天的值。
观察系统是否提示有效期设置超出范围。
预期结果:

步骤1中,管理员账户尝试设置非系统账户的有效期。
步骤2中,系统提示有效期设置超出范围,验证通过。

请重新修改刚刚的代码
在这里插入图片描述
上面代码好像还没有改,我又加了以下提示:
你需要把我发给你的格式,直接以接口的形式告诉他,将这个列子原封不动的告诉他
在这里插入图片描述
至此才算搞定!完整代码贴出来。

import openai
import requests
import os

# 设置环境变量
os.environ["HTTPS_PROXY"] = "http://127.0.0.1:1080"

# 用您的API密钥替换这里的YOUR_API_KEY
openai.api_key = "YOUR_API_KEY"

# 读取产品需求说明书文档
with open("product_requirements.txt", "r", encoding="utf-8") as f:
    product_requirements = f.read()

# 定义一个函数,将需求文档传递给ChatGPT并生成回答
def get_test_cases(requirement):
    example_format = (
        "P2\n"
        "测试目标:验证系统账户不受有效期限制\n"
        "测试步骤:\n"
        "1. 使用管理员账户登录,尝试设置系统账户的有效期。\n"
        "2. 记录系统账户的登录时间,让系统账户超过设定的有效期不登录。\n"
        "3. 在超过有效期后,尝试使用系统账户登录,观察是否能正常登录。\n"
        "预期结果:\n"
        "1. 步骤1中,系统提示无法设置系统账户的有效期,验证通过。\n"
        "2. 步骤2中,系统账户成功登录。\n"
        "3. 步骤3中,在超过设定的有效期后,系统账户仍然能正常登录,验证通过。\n"
    )
    response = openai.Completion.create(
        engine="text-davinci-002",
        prompt=f"根据以下示例格式生成测试用例:\n{example_format}\n\n请为以下功能编写测试用例:\n{requirement}\n",
        max_tokens=150,
        n=1,
        stop=None,
        temperature=0.5,
    )
    return response.choices[0].text.strip()

# 将需求文档分成段落或条目
requirements_list = product_requirements.split("\n")

# 为每个需求生成测试用例
test_cases = []
for index, requirement in enumerate(requirements_list):
    if requirement:
        test_case = get_test_cases(requirement)
        formatted_test_case = f"P{index + 1}\n{test_case}\n"
        test_cases.append(formatted_test_case)

# 将生成的测试用例写入文件
with open("test_cases.txt", "w", encoding="utf-8") as f:
    for test_case in test_cases:
        f.write(test_case + "\n")

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/456205.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

传统制造企业在引入项目管理机制时项目组织结构的重要性

在传统的工业设备制造行业,针对以订单项目为驱动的业务模式,建立一套成熟完备的项目管理机制十分重要,同时也是企业提升自身管理水平精细度的内在要求。项目管理作为外企普遍应用的成熟管理模式,如何将其引入并与民企现存的传统职能型管理模式融合,实现成功嫁接,值得大家思考并…

AD9208之8通道高速采集

板卡概述 FMC168 是 一 款 基 于 VITA57.4 标 准 的2GSPS/2.6GSPS/3GSPS 采样率 14 位分辨率 Double FMC子卡模 块,该模块可以实现 8 路 14-bit、2GSPS/2.6GSPS/3GSPS 采样率模 拟信号采集。该板卡 ADC 器件采用 ADI 公司的 AD9208 芯片,该芯片 与 AD9689 完全…

快商通AI技术再获殊荣,荣膺厦门市“科学技术进步奖”

近日,快商通AI科研项目荣获厦门市“科学技术进步奖”,这是对快商通AI技术研究成果的高度肯定,也是快商通在人工智能领域的又一重大突破。 快商通作为一家技术领先的企业,始终坚持 核心技术自主研发 ,致力于将自然语言…

【Linux命令行与shell脚本编程】 一,Shell简介

Linux命令行与shell脚本编程 第一章 Shell简介 目录 Linux命令行与shell脚本编程一,Shell简介1.1 终端(终端仿真器) 41.2 shell 提示符1.2.1 命令历史记录1.2.2 光标移动1.2.3 与 bash手册交互 命令的构成 一,Shell简介 1.1 终端(终端仿真器) 4 让用户访问 shell 使用图形用…

国产操作系统新机遇——小程序容器

信息技术应用创新不仅是各行各业实现数字转型的关键起点,而且还是我国加强网络安全和信息安全的重要手段。 现阶段,微软,谷歌和苹果等外国公司在操作系统市场上占据着几乎垄断的行业地位。国内操作系统行业正在努力改变过去过于分散的状态&a…

从FMCW毫米波雷达系统的性能参数理解4D成像毫米波雷达的设计思路

本文编辑:调皮哥的小助理 站在设计雷达的角度看,其实无论是传统的3D毫米波雷达,还是如今的4D毫米波成像雷达,其雷达系统性能参数都遵循一个原则,即: d res ⋅ v res ⋅ θ res d max ⁡ ⋅ v max ⁡ ⋅ …

全志v851s GPIO 应用程序编写

1. 查看硬件电路图SCH_Schematic1_2022-11-23 ,查找合适的gpio 作为使用pin 在这里我们选取 GPIOH14(注意目前开发使用这个pin 作为触摸屏的pin脚,需要将触摸屏connect断开) ,因为 可以通过排插使用杜邦线将其引出&am…

scala特质trait

目录 说明案例动态混入 说明 Scala 语言中,采用特质 trait(特征)来代替接口的概念,也就是说,多个类具有相同的特质(特征)时,就可以将这个特质(特征)独立出来…

rabbitMQ学习总结

RabbitMQ 生产者通过-》通道-》交换机-》投到消息队列-》再通过通道-》消费者 分布式架构 何谓分布式系统 通俗一点: 就是一个请求由服务器端的 多个服务 (服务或者系统)协同处理完成 和单体架构不同的是,单体架构是一个请求发起ivm调度线程(确切的是tomcat线程池)…

yolov5-fastapi-demo更换中文标签

本章是基于yolov5-fastapi-demo项目的更改 WelkinU/yolov5-fastapi-demo: FastAPI Wrapper of YOLOv5 (github.com) 首先,因为训练的时候设置的标签是英文,换成中文要重新训练,而且使用中文训练也很繁琐要改很多东西,因此可以直…

防雷接地国家规范标准介绍与施工技术要点

防雷接地是一种防止雷电对建筑物、设备和人身安全造成危害的措施。在防雷接地系统中,将建筑物、设备、金属构件等导体与地面形成良好的导电连接,以便将雷电通过接地体排放到地下,从而保护建筑物、设备和人身安全不受雷击的影响。防雷接地系统…

mybatis粗心使用导致内存溢出

现象 服务响应变慢,线程日志也出现Java heap space内存溢出的错误,这个服务属于基础业务服务,出现问题要尽快的排查 分析 因为设置了gc日志和jmap启动相关参数 所以我们进行分析,这里模拟线上环境将堆大小参数调整到了128m&am…

Windows逆向安全(一)之基础知识(十七)

指针四 指针数组 什么是指针数组 首先回顾一下先前关于数组的知识: 所谓数组就是用于存储相同数据类型的集合 再结合先前关于指针的知识:指针的本质也是一种数据类型 于是当数组中存储的成员的数据类型为指针时,该数组就可以称为指针数…

2023年的深度学习入门指南(7) - SIMD和通用GPU编程

2023年的深度学习入门指南(7) - SIMD和通用GPU编程 深度学习从一开始就跟GPU有不解之缘,因为算力是深度学习不可或缺的一部分。 时至今日,虽然多任务编程早已经深入人心,但是很多同学还没有接触过CPU上的SIMD指令,更不用说GPGPU…

成为黑客猎手:从零开始学习漏洞挖掘的完整指南

一.了解基础知识 学习计算机网络、操作系统、编程语言等相关基础知识,这些知识对于后续的漏洞挖掘和利用非常重要。具体建议如下: 学习计算机网络基础知识,例如 OSI 模型、TCP/IP 协议、HTTP 协议等。推荐书籍:《计算机网络》。…

qt 动态库/静态库的创建和使用教程(step by step)

一般大型项目中, 会将实现特定功能的函数或类, 封装成链接库, 供应用程序代码调用. 下面我将一步步教你如何在qt 中创建动态库/静态库, 并使用它. 目录 创建多子目录项目创建动态链接库编辑链接库内容创建应用工程并连接动态链接库 创建多子目录项目 首先创建一个多子目录项目…

PHP+python+nodejs+ springboot+vue 社区互助平台

项目介绍 社区互助平台的功能分为管理员和用户两个部分,系统的主要功能包括首页,个人中心,用户管理,租房信息管理,失物招领管理,宠物代遛管理,停车位出租管理,其他管理,趣…

哈希表(底层结构剖析--下)

文章目录 开散列哈希桶的模拟实现哈希桶的基本框架增加仿函数将数据类型转换为整型哈希桶的插入函数哈希桶的删除函数哈希桶的查找函数哈希桶的析构函数建议哈希表的大小为素数 开散列与闭散列比较哈希桶的时间复杂度及其测试开散列哈希桶的模拟实现完整代码 开散列哈希桶的模拟…

Java -- ELK之从nacos获取logback.xml配置信息

背景: 之前本地搭建好ELK后,随便起一个项目,可正常日志上送,但是后面我把elk部署到测试环境中发现,本地项目的日志就无法正常上送了,之前我是把上送地址配置到nacos上的,logback.xml中读取nacos…

项目管理中的必不可少的强大工具有哪些?

在项目管理中,我们总是想寻求一套功能强大的工具,来满足我们多样化的需求。但往往事与愿违,这样强大的工具总是费用高,操作复杂,需安装多个插件。下面,我就给大家推荐一款项目管理软件 ~Zoho Projects&…