软件测试/测试开发丨利用ChatGPT 生成自动化测试脚本

点此获取更多相关资料

简介

自动化测试脚本可以模拟用户与应用程序的交互,例如点击按钮、输入数据、导航到不同的页面等等,以验证应用程序的正确性、性能和稳定性。

图片

自动化测试在回归测试、冒烟测试等测试流程中都可以极大地起到节省时间、节省人力的作用,所以目前自动化测试工程师,也是一个非常炙手可热的岗位。

在编写自动化测试的过程中,ChatGPT 可以作为一个非常好用的工具,极大提升编写效率。

实践演练

在使用 ChatGPT 编写自动化测试脚本的时候,提示词最好明确相关的技术栈,这样可以在生成的脚本基础之上做对应的修改。

  • 提示词:请帮我编写一个接口自动化测试脚本,要求使用 Pytest + Requests 。只需要对响应状态码完成断言即可。

ChatGPT的响应信息为:

import pytest
import requests# 定义测试用例
def test_api_response_status_code():# 设置API端点api_url = "https://jsonplaceholder.typicode.com/posts/1"# 发送GET请求response = requests.get(api_url)# 检查响应状态码是否为200 OKassert response.status_code == 200# 运行测试
if __name__ == "__main__":pytest.main(["-v", "test_api.py"])
  • 提示词:请帮我编写一个 Web 自动化测试脚本,要求使用 Pytest + Playwright。

ChatGPT的响应信息为:

import pytest
from playwright.sync_api import sync_playwright# 定义测试用例
def test_web_page_title():with sync_playwright() as p:browser = p.chromium.launch()page = browser.new_page()# 打开网页page.goto("https://example.com")# 获取页面标题title = page.title()# 检查页面标题是否包含"Example Domain"assert "Example Domain" in title# 关闭浏览器browser.close()# 运行测试
if __name__ == "__main__":pytest.main(["-v", "test_web.py"])
  • 请结合 Harmcrest 优化断言。

ChatGPT的响应信息为:

import pytest
from playwright.sync_api import sync_playwright
from hamcrest import assert_that, contains_string# 定义测试用例
def test_web_page_title():with sync_playwright() as p:browser = p.chromium.launch()page = browser.new_page()# 打开网页page.goto("https://example.com")# 获取页面标题title = page.title()# 使用Hamcrest断言检查页面标题是否包含"Example Domain"assert_that(title, contains_string("Example Domain"))# 关闭浏览器browser.close()# 运行测试
if __name__ == "__main__":pytest.main(["-v", "test_web.py"])

总结

1.写清楚需求:在要求ChatGPT编写自动化测试脚本的时候,需要给它明确使用的技术栈,方便基于脚本做修改。

2.将复杂的任务拆分为更简单的子任务/系统地测试变化:通过多次提问,进一步修正ChatGPT的回复,直到满足需求。

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

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

相关文章

【主题教育】民革达州市委会开展“践诺我与民革共成长“讲述活动

【主题教育】民革达州市委会开展“践诺,我与民革共成长“讲述活动 10月28日,民革达州市委会开展“践诺,我与民革共成长——我是民革‘螺丝钉’讲述活动”,有序推进民革四川省委会“重温加入民革承诺、守护民革精神家园”专项活动往心里走、往深里走、往实里走。达州市人大常委会…

计算机组成与结构-安全性和可靠性

系统可靠性分析 概念 平均无故障时间 MTTF 1/失效率 平均故障修复时间 MTTR1/修复率 平均故障间隔时间 MTBFMTTFMTTR 系统可用性 MTTF/(MTTFMTTR)*100% 计算 串联系统 一个设备不可靠,整个系统崩溃RR1R2Rn 并联系统 所有设备不可靠,整个系统崩溃R1-(1…

Vue 官网使用与环境搭建

vue官网网址:https://cn.vuejs.org/vue脚手架文档网址:https://cli.vuejs.org/zh/ vue团队为了使得vue更加好的使用,维护了一些文档。 API是vue的字典,在编写vue的时候,遇到了一些不会的方法那么就去找API&#xff0c…

Visual Studio 2010 软件安装教程(附下载链接)——计算机二级专用编程软件

下载链接: 提取码:2wAKhttps://www.123pan.com/s/JRpSVv-9injv.html 安装步骤如下: 1.如图所示,双击打开【Visual Studio 2010简体中文旗舰版】文件夹 2.如图所示,找到“Setup”文件夹打开,双击运行“setup” 3.如图…

Datawhale-AIGC实践

Datawhale-AIGC实践 部署ChatGLM3-6B平台 clone 项目,配置环境 git clone https://github.com/THUDM/ChatGLM3.git cd ChatGLM3 pip install -r requirement.txt修改web_demo.py, web_demo2.py 设置加载模型的路径修改启动代码: demo.queue().launch(shareFalse…

SpringMVC简单介绍与使用

目录 一、SpringMVC介绍 二、SpringMVC作用 三、SpringMVC核心组件 四、SpringMVC快速体验 一、SpringMVC介绍 Spring Web MVC是基于Servlet API构建的原始Web框架,从一开始就包含在Spring Framework中。正式名称“Spring Web MVC”来自其源模块的名称&#xff…

uniapp中地图定位功能实现的几种方案

1.uniapp自带uni.getLocation uni.getLocation(options) getlocation | uni-app官网 实现思路:uni.getLocation获取经纬度后调用接口获取城市名 优点:方便快捷,直接调用 缺点:关闭定位后延时很久,无法控制定位延迟…

计算虚拟化3——I/O设备虚拟化

目录 I/O基本概念 I/O设备与CPU连接图 CPU与I/O设备的交互 访问I/O设备(IO Access) 数据传输(Data Tronhsfer) I/O设备虚拟化技术 软件辅助全虚拟化 半虚拟化 Virtio协议基本概念 Virtqueue讲解 硬件辅助全虚拟化 I/O…

力扣:有效的括号

自己编写的代码 。 自己的思路&#xff1a; class Solution { private:unordered_map<char,int>symbolValues{{(,1},{),2},{{,4},{},5},{[,8},{],9}, };public:bool isValid(string s) {bool flagfalse;int lenss.length();if (lens % 2 ! 0){flag false;}for…

Arduino设置SoftwareSerial缓冲区大小

SoftwareSerial的缓冲区大小设置 概述修改缓冲区的大小实验 概述 新的Arduino的ESP8266软串口的缓冲区原来老的库中有宏定义可以用来修改接收和发送缓冲区的大小。在现在新的库中已经没有这个设置了&#xff0c;那怎么才能修改缓冲区的大小哪&#xff1f; 修改缓冲区的大小 …

S4.2.4.5 Lane Polarity Inversion

一 本章节主讲知识点 1.1 Polarity Inversion 极性反转 1.2 Lane Reversal 通道翻转 二 本章节原文翻译 2.1 极性反转 原文摘录&#xff1a; PCIe 协议规定&#xff0c;必须支持该特性。该特性的目标也是为了简化 PCB 的布线。每个 lane 都包含一组发送&#xff08;Tx&…

2023年Zotero最新同步教程-使用TeraCloud的25G免费空间实时跨设备同步文献

文章目录 1. 前言2.1. 注册账号2.1.1. 填写注册信息2.1.2. 创建账号成功2.1.3. 注意2.2. 扩容空间2.3. 打开WebDAV 3. Zotero配置WebDAV同步3.1. 设置网址3.2. 验证服务器3.3. 文件同步成功 4. 结语 1. 前言 Zotero免费版的存储空间是300m&#xff0c;一个图文PDF动辄两三M&am…

EPOLL(C/S模型)实现I/O复用多进程聊天室,通过共享内存、socketpair实现父子进程通信,通过信号量回收进程

这里只展示了server端&#xff0c;client端可以用之前的poll写的。 每个client我们fork一个子进程用epoll来实现它的I/O复用。 非常巧妙的使用共享内存&#xff0c;通过给每个client编号以及BUFFER_SIZE保存需要广播和接受的内容&#xff0c;因为有了编号&#xff0c;所以父子进…

Redis7.x 高级篇

Redis7.x 高级篇 Redis版本发行时间Redis单线程说的是什么东西 Redis版本发行时间 Redis单线程说的是什么东西

蓝桥杯官网填空题(合法括号序列)

题目描述 本题为填空题&#xff0c;只需要算出结果后&#xff0c;在代码中使用输出语句将所填结果输出即可。 由 1 对括号&#xff0c;可以组成一种合法括号序列&#xff1a;()。 由 2 对括号&#xff0c;可以组成两种合法括号序列&#xff1a;()()、(())。 由 4 对括号组…

intellij idea拉取最新的依赖包

intellij idea setting 拉取最新的依赖包 File --> Settings --> Build, Execution, Deployment --> Build Tools --> Maven --> 勾选 Always update snapshots. 一般情况下&#xff0c;设置完就可以拉取到最新的依赖包了。 如下&#xff1a; 安装最新的依赖…

配置git并把本地项目连接github

一.配置git 1.下载git&#xff08;Git&#xff09;&#xff0c;但推荐使用国内镜像下载&#xff08;CNPM Binaries Mirror&#xff09; 选好64和版本号下载&#xff0c;全部点下一步 下载完成后打开终端&#xff0c;输入 git --version 出现版本号则说明安装成功 然后继续…

将Bean注入Spring容器的五种方式

将bean放入Spring容器中有哪些方式&#xff1f; 我们知道平时在开发中使用Spring的时候&#xff0c;都是将对象交由Spring去管理&#xff0c;那么将一个对象加入到Spring容器中&#xff0c;有哪些方式呢&#xff0c;下面我就来总结一下 1、Configuration Bean 这种方式其实也是…

pyodbc库删除MSSQL表中重复字段及排序函数ROW_NUMBER()运用

ROW_NUMBER() 是一个窗口函数&#xff0c;用于在 SQL 查询结果集中为每一行分配一个唯一的数字标识符。这个标识符通常用于数据排序、分组或者在结果集中标识特定行。 ROW_NUMBER() 函数的语法如下&#xff1a; ROW_NUMBER() OVER ([PARTITION BY column1, column2, ...][ORD…

修改docker 版本的mysql 8.0 本机Navicat 连不上的问题

1.进入容器 docker exec -it xxxx bash 2.使用root账号登录mysql mysql -u root -p 3.查看当前加密方式 use mysql; SELECT Host, User, plugin from user; 我这是改过了&#xff0c;应该都是caching_sha2_password 4. 修改加密方式 ALTER USER root% IDENTIFIED WITH m…