【C#】WebSoket 演示(使用websocket-sharp库)

Example 3服务器+ Example1 客户端 示例3 此源代码片段包含了如何使用WebSocketSharp库来创建一个HTTP服务器,并提供WebSocket服务。 分析整个代码,我们可以归纳出以下关键信息: 导入了一系列重要的命名空间,包括系统配置、加密库、文本、WebSocket等。 定义了Example3名称空间和包含Main方法的Program类,作为HTTP服务器和WebSocket服务的入口点。 HTTP服务器使用4649端口实例化,同时注释掉的代码展示了其他可能的方式来实例化HTTP服务器(包括带安全连接的https,以及监听不同网络地址和端口的服务器实例)。 当服务器运行在DEBUG模式下,可以设置日志级别、响应等待时间以及清理策略。 注释掉的代码示例说明了如何设置服务器的SSL配置,以及如何设置基本或摘要型的HTTP身份验证。 服务器利用HttpServer.DocumentRootPath设置了文档根目录路径。 通过OnGet事件处理程序来处理HTTP GET请求,可以读取文件并根据文件内容类型设置响应头和正文。 服务器添加了Echo和Chat两个WebSocket服务。 注释掉的代码中包括了WebSocket服务的详细初始化示例,例如设置协议、校验器和对服务器发送的Cookie进行校验等。 服务器启动并开始监听,在控制台上显示一些运行信息。 最后,通过读取输入来停止HTTP服务器 综上所述,本段代码提供了使用WebSocketSharp库创建符合个人需要的HTTP服务器与WebSocket服务的多种示例和配置方法。通过此代码,可以开启一个支持WebSocket通信的服务器,并可通过相关配置来实现安全连接、HTTP认证和基于文档根路径的内容服务能力。 App.config文件 下面代码初始化一个基于WebSocketSharp库的WebSocket服务器,它允许客户端通过WebSocket协议连接进行通信,并提供HTTP服务,可以响应基于HTTP的GET请求。提供静态文件服务和WebSocket回显(Echo)/聊天(Chat)服务。支持通过不同方式指定服务的地址和端口,包含了调试模式下的日志等级设置,以及生产模式下的SSL/TLS证书配置和HTTP认证机制的配置,但这些功能默认是被注释掉的。服务器通过控制台命令启动和停止,并能在控制台输出当前服务的状态信息。 using System; // 引入System命名空间 using System.Configuration; // 引入System.Configuration命名空间,用于访问配置文件 using System.Security.Cryptography.X509Certificates; // 引入System.Security.Cryptography.X509Certificates命名空间,用于处理证书 using System.Text; // 引入System.Text命名空间,包含编码和字符集的功能 using WebSocketSharp; // 引入WebSocketSharp命名空间,一个实现WebSocket协议的C#库 using WebSocketSharp.Net; // 引入WebSocketSharp.Net命名空间,提供网络相关的功能 using WebSocketSharp.Server; // 引入WebSocketSharp.Server命名空间,用于创建和管理WebSocket服务器 // 定义了一个名为Example3的命名空间 namespace Example3 { // 定义了一个Program类 public class Program { // 主函数 public static void Main (string[] args) { // 创建HttpServer类的新实例。 // // 如果需要提供安全连接(即HTTPS),应使用带有'secure'参数设置为true // 或者带有https协议的HTTP URL来创建新实例。 var httpsv = new HttpServer (4649); // 在4649端口上实例化HttpServer // var httpsv = new HttpServer (5963, true); // 使用SSL在5963端口上实例化HttpServer(代码暂时被注释) // 下面的被注释的代码块展示了其他创建HttpServer实例的方式。 // 例如绑定到所有IP地址、绑定到IPv6地址、通过具体IP实例化等等。 /*注释掉的代码展示了多种不同的方法来创建HttpServer的实例,包括监听不同的网络接口(所有网络、IPv4回环地址、IPv6回环地址)、监听不同的端口(常规端口、安全端口)、以及支持安全连接(SSL/TLS)。代码被注释意味着虽然是可用的选项,但当前不是活动状态。这些代码为开发者提供了灵活性,在不同场景下快速调整服务器监听的网络接口和端口。*/ // 使用SSL,在5963端口上创建一个支持安全连接的HttpServer实例(代码被注释) // var httpsv = new HttpServer (5963, true); // 在所有网络接口的4649端口上创建HttpServer实例(代码被注释) // var httpsv = new HttpServer (System.

macos brew python3 error: externally-managed-environment

当你使用MacOS 通过brew 安装了python,并且是python3.12。 当你想使用pip3 安装第三方库时,你遇到了以下报错: error: externally-managed-environment × This environment is externally managed ╰─> To install Python packages system-wide, try brew install xyz, where xyz is the package you are trying to install. If you wish to install a Python library that isn't in Homebrew, use a virtual environment: python3 -m venv path/to/venv source path/to/venv/bin/activate python3 -m pip install xyz If you wish to install a Python application that isn't in Homebrew, it may be easiest to use 'pipx install xyz', which will manage a virtual environment for you.

【科研】常用的实验结果评价指标(1) —— R2(R-square)是什么?

常用的实验结果评价指标(1) —— R2(R-square),可能为负数吗?! 提示:先说概念,后续再陆续上代码 文章目录 常用的实验结果评价指标(1) —— R2(R-square),可能为负数吗?!前言一、R2 基本概念1. R2 是什么?2. R2 的起源3. R2 的计算公式4. R2 是为了衡量或评价什么? 二、R2的适用场景是什么?三、R2是否适用于强非线性数据?如果不适用,有无替代?1. R2不适用于强非线性数据2. 强非线性数据时,R2的替代指标 四、R-square的取值范围有没有可能出现负数?1. 出现负R平方值的情况2. 应对措施 前言 各类论文的实验结果中经常会有R2作为评价指标,本篇就是为了搞清楚R2究竟是什么,什么时候能用,什么时候不能用。 一、R2 基本概念 1. R2 是什么? R2/R平方(R-squared),也称为决定系数,是统计学中的一个重要概念,用于衡量一个统计模型预测能力的好坏。它主要用于回归分析中,可以解释响应变量的变异由自变量的变异解释的比例。R-squared (R2) 的值范围从0到1,其中较高的值表明模型能更好地解释数据变异。 2. R2 的起源 R2 的概念起源于统计学的回归分析,它是在20世纪初期由统计学家们发展起来的。尤其是与最小二乘法(Ordinary Least Squares, OLS)相关的统计方法的发展,推动了R2作为衡量模型拟合优度的一个标准的产生。 3. R2 的计算公式 R2的计算公式可以表示为: 其中 4. R2 是为了衡量或评价什么? R2 用于衡量自变量对因变量变异的解释程度。具体来说: 当 R2 = 1 时,表示 模型完美地解释了所有的数据变异。当 R2越小,标明模型解释的变异比较小,简单来说,即模型的拟合效果不佳。 总的来说,R2 是用来评价模型的解释能力和预测能力的一个指标,它帮助研究人员和分析师理解模型对现实数据变动的捕捉程度。 二、R2的适用场景是什么? R2主要适用于量化线性回归模型的拟合优度,即衡量模型预测的因变量的值在多大程度上能够接近实际观测值。它被广泛用于统计分析和机器学习中,尤其是在评估线性关系强度时。 R2的适用场景: 线性回归分析:在简单线性回归和多元线性回归中,R平方是衡量模型解释数据变异的常用指标。模型比较:比较不同模型对相同数据集的拟合效果时,可以使用R平方作为衡量标准之一。 三、R2是否适用于强非线性数据?如果不适用,有无替代? 1. R2不适用于强非线性数据 对于非线性数据,R2的解释能力和适用性可能受限。尽管R2可以在技术上计算出非线性模型的拟合优度,但它可能不足以全面反映模型的效能,因为: 非线性复杂性:非线性关系可能导致数据的变异方式与线性模型假设不匹配,这使得使用R平方来解释模型性能可能会产生误导。过拟合风险:在非线性模型中,过度复杂的模型可能会很好地拟合训练数据(即高R平方值),但可能不具有良好的泛化能力,即在新的、未见过的数据上表现不佳。 2.

【数据结构】手把手带你玩转线性表

前言: 哈喽大家好,我是野生的编程萌新,首先感谢大家的观看。数据结构的学习者大多有这样的想法:数据结构很重要,一定要学好,但数据结构比较抽象,有些算法理解起来很困难,学的很累。我想让大家知道的是:数据结构非常有趣,很多算法是智慧的结晶,我希望大家在学习数据结构的过程是一种愉悦的心情感受。因此我开创了《数据结构》专栏,在这里我将把数据结构内容以有趣易懂的方式展现给大家。 1.线性表的定义 线性表,听名字我们就能感受到,是具有线一样性质的的表。举个鲜明的例子,当我们在上体育课时,一个班的人都排好队,每一排都有一个打头的,一个收尾的,每个人都知道自己前一个是谁,后面一个是谁,这样就如同一根线一样将他们串在了一起,这就可以称为线性表。线性表是数据结构中最基本的一种,它是由n(n>=0)个具有相同类型的元素组成的有限序列。具体来说,线性表由多个元素组成,每个元素都有一个唯一的前驱元素(除第一个元素外)和唯一的后继元素(除最后一个元素外)。这里我们要强调两个点: 首先它是一个序列,也就是说,元素之间是有顺序的,若存在多个元素,则第一个元素无前驱,最后一个元素无后继,其他元素都有且仅有一个前驱和后继。如果我们在站队时有同学请假,他的位置将会空出来,那就不能排成一队了(没有补位滴情况)。线性表还强调有限,我们的班级人数都是有限的,元素个数当然也是有限的。事实上,在计算机处理的对象都是有限的,那种无限的数列,只存在于数学的概念中。 线性表逻辑结构图大致如下: 线性表有两种存储方式,一种是顺序存储结构,即将元素依次存储在一块连续的内存中;另一种是链式存储结构,即将元素存储在不连续的内存中,通过指针将它们连接起来。我们前面学过的数组也是顺序表类型,除数组外线性表应用场景还有链表、栈、队列等。线性表是一种常见的数据结构,它具有一对一的关系、存储方式灵活、操作简单高效等特点,广泛应用于各种领域。线性表的优点是操作简单、效率高,但是它的缺点是插入和删除操作需要移动大量的元素,时间复杂度较高。在这一篇博客中我们主要介绍线性表中的顺序存储结构中的顺序表。 2.顺序存储结构——顺序表 顺序表是一种线性数据结构,它通过一组连续的存储单元来存储数据元素,元素之间的关系是一对一的关系。顺序表中的元素在内存中是按照其逻辑顺序依次存放的,可以通过元素在顺序表中的位置(下标)来访问和操作元素。听着怎么感觉顺序表这么像数组呢?顺序表的底层结构就是数组,实现了对数组的封装,实现了常用的增删查改等操作,二者主要区别如下: 结构差异:顺序表是通过一段连续的存储空间存储元素的线性表,而数组则是一种普通的数据结构,可以存储不连续的元素。 动态性:顺序表的长度可以动态调整,当元素数量超过当前存储空间时,可以进行扩容;而数组的长度是固定的,需要在初始化时指定长度。 访问效率:由于顺序表的元素是连续存储的,所以在存取元素时效率较高,可以通过下标直接访问;而数组由于是按照索引存储,需要通过索引值来访问元素。 插入和删除操作效率:顺序表的插入和删除操作需要移动元素,所以效率较低;而数组的插入和删除操作由于不需要移动元素,所以效率较高。 空间占用:顺序表的存储空间由于需要动态调整,所以可能存在一定的空间浪费;而数组的存储空间是固定的,不会出现空间浪费的情况。 顺序表有两种实现方式:静态顺序表和动态顺序表。静态顺序表是指在程序设计时,为顺序表分配了一段固定大小的存储空间,不允许进行扩容或缩容的操作。由于静态顺序表的大小是固定的,所以需要在定义时预估数据的最大规模,这可能会导致存储空间的浪费或无法满足需求的问题。下面为静态顺序表: 动态顺序表是指在程序运行时,可以根据实际的数据规模进行动态扩容或缩容的操作。动态顺序表可以根据需要动态调整存储空间的大小,有效地利用了内存空间。但是,在扩容或缩容时需要进行数据的搬迁,会带来一定的时间开销。下面为动态顺序表: 顺序表适用于需要频繁访问元素或根据下标查找元素的场景。在元素的插入和删除操作较少,或者已知数据规模的情况下,使用静态顺序表更为合适。在元素的插入和删除操作较多,或者数据规模不确定的情况下,使用动态顺序表更为合适。因为静态顺序表的使用确实不常见,极少情况才会使用静态顺序表,在这里我着重和大家介绍动态顺序表。 3.动态顺序表的的实现 动态顺序表的实现我们需要些一些函数来完成顺序表的初始化、销毁,插入、删除等操作,所以这里我们采用多文件的方式来实现。每一部分的函数都会详细讲解。下面为顺序表的结构代码: typedef int SLDataType; typedef struct SeqList { SLDataType* a; int size; //顺序表有效的个数 int capacity; //顺序表的空间大小 }SL; 3.1顺序表的初始化和销毁 我们在主函数通过顺序表的结构来创建一个顺序表,创建完顺序表我们要干什么呢?当然是初始化啦,我们在初始化。在这里我们将顺序表的地址传递给创建的顺序表初始化函数,用一个指针接收顺序表的地址,通过对指针的解引用我们就可以修改顺序表。在顺序表初始化的时候我们要满足:将线性表的长度和容量都设置为0,表示线性表当前为空,将分配的内存空间的起始地址也置空处理。顺序表的初始化函数代码如下: void SLInit(SL* ps) { ps->a = NULL; ps->size = 0; ps->capacity = 0; } 顺序表的销毁是指将顺序表中的数据元素清空,并释放顺序表占用的存储空间,使之成为一个空表。具体步骤为下:首先,释放顺序表中存储数据元素的内存空间,然后,清空顺序表中的数据元素。注意,顺序表的销毁操作可能会导致数据丢失,所以在执行销毁操作之前,应该确保不再需要使用该顺序表中的数据。顺序表的销毁函数代码如下: void SLDestroy(SL* ps) { if (ps->a) free(ps->a); ps->size =0; ps->capacity = 0; } 3.2顺序表的插入和删除 在这一小节主要和大家讲解顺序表的尾插、尾删、头插、头删、任意位置插入、任意位置删除操作。我们在顺序表的插入操作时,我们要先判断顺序表是否已满。如果顺序表已满,则需要进行扩容操作,将顺序表的容量增加一定的大小。所以在介绍顺序表的插入之前我们先写一个函数来为我们判断顺序表是否已满。我们要怎样判断顺序表是否满了呢?只需要判断顺序表中的有效元素个数和空间容量是否相等,相等就是满了呗。这个函数实现如下: void SLCheckcapacity(SL* ps) { if (ps->size == ps->capacity)//空间已经不足以插入数据 { int newcapacity = ps->capacity == 0 ?

运用 Co-STAR 模型,让AI更容易理解你的提示词

运用 Co-STAR 模型,让AI提供更好的Idea 什么是 Co-STAR 模型? CO-STAR框架一作者提供的图像如何应用CO-STAR框架: (C)上下文:为任务提供背景信息通过为大语言模型(LLM)提供详细的背景信息,可以帮助它精确理解讨论的具体场景,确保提供的反馈具有相关性。(O)目标:明确你要求大语言模型完成的任务清晰地界定任务目标,可以使大语言模型更专注地调整其回应,以实现这一具体目标。(S)风格:明确你期望的写作风格你可以指定一个特定的著名人物或某个行业专家的写作风格,如商业分析师或CEO。这将指导大语言模型以一种符合你需求的方式和词汇选择进行回应。(T)语气:设置回应的情感调设定适当的语气,确保大语言模型的回应能够与预期的情感或情绪背景相协调。可能的语气包括正式、幽默、富有同情心等。(A)受众:识别目标受众针对特定受众定制大语言模型的回应,无论是领域内的专家初学者还是儿童都能确保内容在特定上下文中适当目容易理解。(R)响应:规定输出的格式确定输出格式是为了确保大语言模型按照你的具体需求进行输出,便于执行下游任务。常见的格式包括列表、JSON格式的数据、专业报告等。对于大部分需要程序化处理大语言模型输出的应用来说,JSON格式是理想的选择。 模板: PS: 中英文皆可 #CONTEXT(上下文)# #OBJECTIVE(目标)# #STYLE(风格)# #TONE (语调)# #AUDIENCE(受众)# #RESPONSE(响应)# 案例: #CONTEXT(上下文)# 我想推广公司的新产品。我的公司名为DarkMI,新产品名为Dark k80,是一款新型高科技7G智能手机。 #OBJECTIVE(目标)# 帮我创建一条暗米社区帖子,目的是吸引人们点击产品链接进行购买。 #STYLE(风格)# 参照Xiaomi、Huawei等成功公司的宣传风格,它们在推广类似产品时的文案风格。 #TONE (语调)# 说服性、吸引性 #AUDIENCE(受众)# 我们公司在暗米社区上的主要受众是年轻人。请针对这一群体在选择智能手机产品时的典型关注点来定制帖子。 #RESPONSE(响应)# 保持Facebook帖子简洁而深具影响力。 Openai返回结果: 运用技巧前对比 Kimiai返回结果: 运用技巧前对比: 个人使用层面来说,使用 CO-STAR 的模型,能让AI更容易理解你所在意的需求重点,从原理上分析,所有基于大型语言模型的AI都能够运用此模型,并且能够更有效地处理信息,以便精确地回答你的问题,提供更好的Idea。

SQL Server2019安装步骤+使用+解决部分报错+卸载文章跳转(超详细 附下载链接)

1、下载安装SQL Server2019: 第一步:官网下载安装包SQL Server 2019 - 定价 | Microsoft 【以下内容图片借用SQL Server2019安装步骤(超详细 附下载链接) - 掘金中内容】 第二步:打开安装包,并选择基本. 第三步:选择语言,并选择接受 第四步:选择安装位置,点击安装 第五步:安装成功之后找到安装的位置双击进行安装 第六步:连续下一步. 第七步:选择在实例中添加功能. 第八步:点击下一步. 第九步:选这四个满足基本需求,接着下一步。 第十步:安装,安装完成,查看是否成功,若成功代表已安装完成,点击关闭。 2、下载安装SSMS SQL: 安装完成之后需要安装SSMS来管理SQL。 第一步:进行下载,直接点击安装SSMS进行下载(我的电脑找不到网页)。 或者进入官网下载 官网地址:下载 SQL Server Management Studio (SSMS) - SQL Server Management Studio (SSMS) | Microsoft Learn下载最新版本的 SQL Server Management Studio (SSMS),用于管理和配置 SQL Server 和 Azure SQL 的实例。https://learn.microsoft.com/zh-cn/sql/ssms/download-sql-server-management-studio-ssms?redirectedfrom=MSDN&view=sql-server-ver15 第二步:右击->以管理员身份打开 第三步:进行安装,不要修改安装路径,点击安装。 第四步:安装完成 3、使用ssms创建项目: 第一步:打开ssms 第二步:登陆,点击链接 最终实现服务器的连接。 第三步: 新建数据库,根据需求设置相关内容,点击确定,找到想要操作的数据库,新建查询。 4、报错: (1)证书链是由不受信任的颁发机构颁发的报错 点击选项,勾选信任服务期证书 (2)远程连接失败的报错 请参考文章 :sqlserver 无法远程连接到服务器,解决SQLServer远程连接失败的问题-CSDN博客

Python图形复刻——绘制母亲节花束

各位小伙伴,好久不见,今天学习用Python绘制花束。 有一种爱,不求回报,有一种情,无私奉献,这就是母爱。祝天下妈妈节日快乐,幸福永远! 图形展示: 代码展示: import matplotlib.pyplot as plt import numpy as np from matplotlib.colors import LinearSegmentedColormap as lsc from scipy.spatial.transform import Rotation as R # @author : slandarer # 生成花朵数据 t1 = np.array(range(25))/24 t2 = np.arange(0, 575.5, 0.5)/575*20*np.pi + 4*np.pi [xr, tr] = np.meshgrid(t1, t2) pr = (np.pi/2)*np.exp(-tr/(8*np.pi)) ur = 1 - (1 - np.mod(3.6*tr, 2*np.pi)/np.pi)**4/2 + np.sin(15*tr)/150 + np.sin(15*tr)/150 yr = 2*(xr**2 - xr)**2*np.sin(pr) rr = ur*(xr*np.sin(pr) + yr*np.

C++ 实现简单的串口通讯

C++ 实现简单的串口通讯 首先我们需要包含必要的头文件,然后定义串口通讯类: #include <iostream> #include <string> #include <windows.h> class SerialPort { private: HANDLE hComm; // 串口句柄 DCB dcbSerialParams; // 串口参数 COMMTIMEOUTS timeouts; // 超时参数 public: SerialPort(); ~SerialPort(); bool open(const std::string& portName, int baudRate); bool close(); bool read(char* buffer, int bufferSize, int& bytesRead); bool write(const char* buffer, int bufferSize, int& bytesWritten); }; 这个类包含了打开和关闭串口,读写数据等基本功能。接下来实现这些成员函数: SerialPort::SerialPort() { hComm = INVALID_HANDLE_VALUE; SecureZeroMemory(&dcbSerialParams, sizeof(DCB)); SecureZeroMemory(&timeouts, sizeof(COMMTIMEOUTS)); } SerialPort::~SerialPort() { close(); } bool SerialPort::open(const std::string& portName, int baudRate) { hComm = CreateFileA(portName.

sql转er图论文专用!在线生成ER图,可在线编辑!

直接通过SQL转化而来,直接复制进论文直接用! 摘要: 如果你是一名数据库开发者或系统分析师,那么你可能需要将数据库的SQL建表语句转换成实体类图(ER图)。这不仅可以帮助你更好地理解和展示数据库结构,还可以用于文档编写和团队协作。本文将向你介绍一个在线工具,它能够实现这一转换,并且提供在线编辑功能。 工具地址: https://www.yaojiedan.com/sqltoer 点击查看工具地址 SQL转ER图工具 使用教程: 数据准备: 首先,找到并准备好你需要转换的项目的数据库。 使用推荐的数据预处理工具,如Navicat,来处理你的数据库表。 确保每张表都已正确填写表名和注释,以避免转换过程中的错误。 处理完毕后,选择导出数据库表结构,仅导出结构部分,并保存到一个容易找到的位置。 开始转换: 在转换前,选择购买次数以获取使用权限。 购买后,你将获得一个订单号,这是进行数据转换的关键。 使用记事本打开你之前保存的SQL文件,将内容复制到工具的输入框中,然后点击转换按钮。 结果获取: 转换完成后,使用订单号查询结果。 根据提示,你可以下载或直接在浏览器中预览生成的PDF文件。 在线编辑: 如果需要对生成的ER图进行编辑,可以点击在线编辑功能。 为了获得更好的编辑体验,请检查浏览器设置,确保不勾选“不缓存数据”选项,以避免编辑时的卡顿。 效果展示: 文章中提供了几张转换后的ER图示例,展示了工具的转换效果和在线编辑的可能性。 通过这个工具,用户可以轻松地将数据库的SQL建表语句转换成ER图,并对其进行在线编辑,极大地提高了工作效率和便利性。

Chat Gpt详细教程:手把手带你Open AI 的API对接

今年4月最大的一个瓜,就是Open AI全面免费开放了,所以很多人想白漂API但却不知该如何去获取Open AI的API,甚至好多小伙伴都碰壁在注册Open AI的半路上了,甚至是如何开通海外付费都变成一个难题~ 所以针对以上的问题,我将出一份教程为大家一一解决。当然,本次教程全程是由本人跑过一遍的,本人亲测不封号、不踩雷、不墨迹。 在整个的注册、激活Open AI账户、升级Open AI使用级别、对接API等等都会借助其他工具而产生一些费用,请各位老板慎重考虑并尝试。 在教程学习中产生的其他平台的工具费用与任何问题都与本教程无关,请各位老板悉知。 注意:所有工具的昵称全部统称为“XXX国际旅游卡”担心被优化了~ 不懂的可以问。 话不多说,开始进入正题。 一、第一步,注册谷歌邮箱 大家去下载一个谷歌浏览器,然后安装到电脑上,再去寻一个稳定“梯子”。准备工作就算完了。接下来给大家演示注册流程哈~ 咳咳~ 有一些小伙伴可能不理解什么是“梯子”请自行百度搜索哈。或者可以来咨询我给你推荐一个好用的。 1、在谷歌网页输入Goolgle的地址,点击右上角的登录页面。 2、跳转到登录页面后,点击“创建账号”,选择个人用途。下一步。 3、填写基本信息,我一般会选择把名字写成英文字母,因为这样会显得很高级。Hhh~ 4、填写生日,随便写也可以,完全不影响后面的使用。 5、创建你自己的Gmail地址,也可以使用默认生成的Gmail地址。看个人喜好了。 6、设置密码,这一步重要的不是设置密码,而是保存好密码。省的到时候记不得密码了。我一般会写在我的便签里,方便后面查找使用。 7、这里填写一个你的QQ邮箱即可,方便后续重要操作。多一个保障么~如果你不打算长期用的话,就直接跳过即可。 8、确认信息,下一步,阅读协议,同意,注册成功!恭喜恭喜~ 9、修改谷歌个人资料,不想改的跳过即可。 10、首次登录后会出现验证登录的情况。重新验证登录一下就OK了 11、手机号绑定验证,这个时候写国内的手机号码即可,短信都是秒到。输入验证码,就OK了 验证码是G- 开头的,输入后面的纯数字就OK。 成功登录!记得自己切换成中文模式哦~ 二、第二步,注册Open AI 1、访问Open Ai 官网,点击登录。 2、登录验证,正常跟着指示操作即可。 配合验证就OK, 3、关键的时刻到了,使用谷歌账号登录!省去一切繁琐步骤。 4、选择当前已登录的谷歌账号即可。没什么技术含量了~ 跟着步骤走就准没错。 5、点击继续,(要是英文看着难受,就点下面的切换语言即可,不切换的话点击的位置都是一样的。) 6、创建Open AI的基本账户信息,最好是英文,你写中文也行,就是后面会显示的很奇怪。 示范的模板~ 按着下面的格式去写就OK了。 7、点击前往获取API,这点毋庸置疑了。先把API拿到手,再去体验GPT吧! 8、到达了主页面!点击侧边的菜单栏,选择API Keys——创建新的API,看图吧! 9、这一步很重要了!非常的重要。在首次获取API的时候,Open AI会要求你验证手机号的!国内手机暂时不大行,所以这个时候你需要一个海外的旅游卡,这是重点来咯!!! 三、第三步,国际SIM旅游卡 1、现在我们需要借助一个工具!国际SIM旅游卡租赁~ 我们去访问s ms-activate。短期出国、酷爱外服游戏的的朋友们应该清楚这玩意儿的好处。此处不做过多讲解。 2、这里的注册流程与前面一样,选择用谷歌账号登录即可,这里不用过多的废话,里面都是中文介绍的方便很多。但是记得先充值点余额进去,方便后面使用它的短信接受功能。 3、充值的话国际旅游卡支持多重支付方式,也包括了咱们国内的支付宝。充值的时候选择一个最低档就可以,够你使用了。 4、充值成功后,就不用管它了。我们去租用一个国际SIM旅游卡。在首页选择租用——Whatsapp——选择一个国家的旅游卡 5、但你租赁成功后,在右边会显示你的旅游卡的SIM卡 号,这个时候你就可以去激活Open ai 的API 了。(回到第二步的第7点位置,应该不需要再截图给大家看了~ ) 提示: 它的最低租用时效是4个小时,4个小时够你随便玩耍了。 四、第四步,创建API 1、回到openai 界面后点击创建秘钥——填写项目昵称——选择项目类——全部权限——创建秘钥。 2、这一步非常的关键!一定要点复制,然后保存好,API秘钥仅在首次能看见全部秘钥,等你退出这个界面的时候,就再也看不到全部秘钥了。切记切记!!!

Mac外接2k、4k显示器字体窗口缩小解决方案

问题 Mac外界2k或4k等高分辨率显示器窗口和字体会变小,分辨率越高变得越小。 解决方案 开启HiDPI即可,至于什么是HIDPI大家可以参考这篇文章: 谈谈 HiDPI —— 是什么,为什么,怎么做 简单来说,HiDPI让分辨率更高的显示器上能够渲染和传统屏幕看起来大小相同、却更加清晰的图象。 开启方法 这里使用到一个工具,下载链接:GitHub - xzhih/one-key-hidpi: Enable macOS HiDPI and have a native setting. 下载并解压后得到如下包内容: 双击点开第二个文件:hidpi.command,按照提示操作开启即可 运行完毕重启电脑,打开设置-显示器,这时会发现分辨率列表中多了高分辨率的HiDPI选项(原本只有1k的HiDPI),切换即可发现窗口和字体显示正常并且十分清晰。

快速上手文心一言指令

人不走空 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌赋:斯是陋室,惟吾德馨 目录 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌赋:斯是陋室,惟吾德馨 (一)三分钟快速掌握文心一言基础指令技巧 1.1 指令(Prompt)基本格式: 1.2 指令词构造示例 1.2.1 什么是不好的指令词 1.2.2 什么是好的指令词 (二)文心一言入门指令应用实例 1.1 巧用文心一言,提效工作职场 1.2 巧用文心一言,畅游无垠学海 1.3 巧用文心一言,化身贴心助手 1.4 巧用文心一言,解锁亲密伙伴 1.5 巧用文心一言,扫除忧愁苦闷 作者其他作品: 一条指令的背后也许是工作中被省掉的N个小时;是学习中多学到的N条知识;是生活中解答的N条疑问;无聊郁闷时的N份正能量。如果你仍苦于不知如何跟AI交互,不妨直接看看这里,三分钟带你快速上手文心一言指令,帮你在不同应用场景找到属于你的宝藏指令! (一)三分钟快速掌握文心一言基础指令技巧 1.1 指令(Prompt)基本格式: 参考信息:包含文心一言完成任务时需要知道的必要背景和材料,如:报告、知识、数据库、对话上下文等 动作:需要文心一言帮你解决的事情,如:撰写、生成、总结、回答等 目标:需要文心一言生成的目标内容,如:答案、方案、文本、图片、视频、图表等 要求:需要文心一言遵循的任务细节要求,如:按XX格式输出、按XX语言风格撰写等 1.2 指令词构造示例 一条优秀的指令词应清晰明确且具有针对性,能够准确引导模型理解并回应你的问题。下面,让我们看一下什么是不好的指令词,什么是优秀的指令词: 1.2.1 什么是不好的指令词 写一首山和树林的诗。 下面的题帮我讲一下。 撰写一篇有关大语言模型可信性的论文。 1.2.2 什么是好的指令词 请以唐代诗人的身份,在面对黄山云海时,根据已有唐诗数据,撰写一篇作者借由眼前景观感叹人生不得志的七言绝句,并严格满足七言绝句的格律要求。 请以高中数学老师的身份,在高中课堂上,根据《高中数学必修一》内容,逐步解答学生关于集合的数学问题,并给出解题步骤及相关知识点。 请根据已发表的关于大语言模型可信性的相关文献,撰写一篇系统梳理大语言模型可行性相关研究现状以及未来挑战的综述论文,并且严格遵循《计算机学报》投稿格式。 恭喜你,已经学会了一条优质指令词的基本构造形式。光说不练假把式!接下来我们将使用真实的实践案例,带你一同挖掘文心一言更多的宝藏能力。 (二)文心一言入门指令应用实例 了解文心一言的入门指令(Prompt)方法论之后,本篇章将从职场提效、学习成长、生活助手、情感陪伴、休闲娱乐五个方面,围绕具体的使用人群和真实的使用场景展现对应的方法论。 1.1 巧用文心一言,提效工作职场 职场人的一天难免身陷灵感荒漠,为一条创意想破脑袋;亦或是,面对重复却耗时的任务,被冗长的材料消磨了自己的热情。快来运用刚才学到的指令公式,让灵感涌现,跟重复、机械、低效Say No! 无论你是程序员、设计师、教师、影视编导,还是需要兼具创意和执行力的广告人、自媒体、作家、写手,你都可以让文心一言成为你的专属打工人。 如果你是一个每天都需要打造爆款的广告人、自媒体、主播 灵感匮乏、创意枯竭怎么办?莫慌!文心一言能够为你快速脑暴想点子,也能为你一步到位直接生成创意文字/图片/视频。 以创作陈年老酒这款商品的广告文案为例,10s内一行短句轻松让你灵感爆发,超额达成工作任务! 你可以在文心一言对话框输入: 请参考其他知名白酒品牌文案,为'陈年老酒'这款产品创作十个吸睛的广告文案。 不止于文案,借助文心一言强大的逻辑能力和生成能力,一个简单的创意可以瞬间转化为一则完整的视频脚本,让你的创作能力倍增! 你可以在文心一言对话框输入: 请参照主流短视频平台的观众喜好,为一名美食探店博主,制作一个打卡评测刘记肥肠火锅店的视频脚本,要求标明对应镜号。 借助文心一言一镜流影插件,更能将几句简短平平的文字转化为绘声绘色的视频,进一步放大你的每一个想象。 你可以在文心一言对话框输入: 请结合北京的历史文化,制作一则讲解北京烤鸭的视频,要求使用东北话。

whisper使用

whisper使用 1. 直接调用 语音识别2. 语种识别 whisper.detect_language()和whisper.decode()3. 指定要识别的语种做语音识别**whisper 源码的transcribe函数** 函数解析1. transcript.py2. tokenizer.py3. audio.py4. __ init__.py github: https://gitcode.com/openai/whisper/overview 1. 直接调用 语音识别 ,transcribe()方法会读取整个文件,并使用一个30秒的滑动窗口对音频进行处理,对每个窗口进行自回归序列到序列的预测。 官网readme调用1 import whisper model = whisper.load_model("base") # 加载模型 result = model.transcribe("audio.mp3") # 指定音频路径 识别 print(result["text"]) # 输出识别结果 load_model方法在__init__.py文件中有定义 {'text': ' 你一定會笑著說 二百克芝麻能力好耐架', 'segments': [{'id': 0, 'seek': 0, 'start': 0.0, 'end': 2.0, 'text': ' 你一定會笑著說', 'tokens': [50365, 10930, 24272, 6236, 11600, 19382, 4622, 50465], 'temperature': 0.0, 'avg_logprob': -0.5130815124511718, 'compression_ratio': 0.8253968253968254, 'no_speech_prob': 0.

【爱上C++】详解类与对象1

hello朋友们,这里是勇子.虽说已经注册账号1年了,但真正踏上博客之路还是在这几天,我会把博客的内容做的尽可能的易懂,清晰。 OK,话不多说今天我来学习C++中的类与对象1。 文章目录 1.类的引入2.类的定义3.类的访问限定符4.类访问限定符5.类的实例化6.类对象大小的计算7.结构体内存对齐规则面试题: 8.this指针this指针特性 1.类的引入 C语言结构体中只能定义变量,在C++中,结构体内不仅可以定义变量, 也可以定义函数。比如:之前在数据结构初阶中,用C语言方式实现的栈, 结构体中只能定义变量;现在以C++方式实现,会发现struct中也可以定义函数。 typedef int DataType; struct Stack { void Init(size_t capacity) { _array = (DataType*)malloc(sizeof(DataType) * capacity); if (nullptr == _array) { perror("malloc申请空间失败"); return; } _capacity = capacity; _size = 0; } void Push(const DataType& data) { // 扩容 _array[_size] = data; ++_size; } DataType Top() { return _array[_size - 1]; } void Destroy() { if (_array) { free(_array); _array = nullptr; _capacity = 0; _size = 0; } } DataType* _array; size_t _capacity; size_t _size; }; int main() { Stack s; s.

Mac安装激活--Typora,一个比记事本更加强大的纯文本软件

一、安装 1.首先到官网下载Mac版的Typora,下载地址:https://typoraio.cn/ (1)打开默认中文站 (2)往下滑,下载Mac版 2.下载完成后,会看到Typora.dmg文件,点击打开文件 3.打开Typora.dmg文件,鼠标落在左边app图标上,按住拖拽到右边图标,安装完成。 4.打开启动台,可以看到Typora软件已安装成功。 5.点击Typora进入app的欢迎界面,发现未激活,只能试用14天。下面进行激活的操作。 二、激活 1.打开访达,按快捷键Command+Shift+G 打开搜索, 2.在上图红框内输入 /Applications/Typora.app/Contents/Resources/TypeMark 点击回车,快速进入目录。 此时会看到搜索结果有很多,选第一个即可; 3.选中后点击回车,跳转到该文件夹下; 打开文件:page-dist文件夹–>static–>js–>LicenseIndex.开头的文件 4.选中该文件后右键(Mac的右键:control+鼠标单击)–>打开方式–>用「文本编辑」打开 5.打开后,点击顶部菜单栏「编辑」–>「查找」–>「查找」,进行搜索; 搜索:hasActivated="true"==e.hasActivated, 并将这段替换为 hasActivated="true"=="true"。 6.替换后,参考黄色高亮部分,保存该文件,即可。 7.保存后,重新打开Typora软件,欢迎界面撒花🎉🎉🎉,显示已激活。okk结束!! 注:参考文献:mac安装并激活Typora

java通过Kerberos认证方式连接hive

在数据源管理功能中,需要适配mysql、postgresql、hive等数据源。mysql和postgresql连接方式一致,只需要驱动和jdbcurl即可,而hive背后是大数据集群,多采用Kerberos的方式保护集群环境,要想与大数据集群正常交互,需要经过kdc认证获取ticket,因此获取hive连接前需要先通过Kerberos认证 Java实现Kerberos认证 主要方法 # 从keytab文件中加载用户标识并登录 org.apache.hadoop.security.UserGroupInformation#loginUserFromKeytab 依赖 kerberos相关配置文件:krb5.conf、keytab文件从大数据集群管理员那获取 依赖:hive-jdbc:3.1.3(hive安装目录中带有该驱动包,可查看使用的版本)、hadoop-common:3.3.6,版本需和hive服务版本一致,在springboot3的框架下需要排除以下依赖,否则启动报错 <dependency> <groupId>org.apache.hive</groupId> <artifactId>hive-jdbc</artifactId> <version>${hive.jdbc.version}</version> <exclusions> <exclusion> <artifactId>HikariCP-java7</artifactId> <groupId>com.zaxxer</groupId> </exclusion> <exclusion> <artifactId>javax.servlet.jsp</artifactId> <groupId>org.glassfish.web</groupId> </exclusion> <exclusion> <artifactId>jetty-runner</artifactId> <groupId>org.eclipse.jetty</groupId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-common</artifactId> <version>${hadoop.version}</version> <exclusions> <exclusion> <artifactId>commons-lang3</artifactId> <groupId>org.apache.commons</groupId> </exclusion> <exclusion> <artifactId>curator-client</artifactId> <groupId>org.apache.curator</groupId> </exclusion> </exclusions> </dependency> 示例 String confPath = "\xxx\krb5.conf"; String keytabPath = "\xxx\hive.service.keytab"; String principal = "hive/xxx@xxx"; System.setProperty("java.security.krb5.conf", confPath); //System.setProperty("sun.security.krb5.debug", "true"); //System.setProperty("javax.security.auth.useSubjectCredsOnly", "false"); Configuration configuration = new Configuration(); configuration.set("hadoop.security.authentication", "KERBEROS"); UserGroupInformation.

Python 第三方 PyQt5 库使用PyQt5-tools的依赖包安装和 Qt Designer、PyUIC、PyRcc三个工具的设置以及QT Designer实现拖拽进行可视化UI界面开发

Python 使用QT Designer实现拖拽进行可视化UI界面开发 目录 前言 使用Python开发图形界面的软件其实并不多,而使用自带Tkiner库又无法满足一些界面开发,本文主要讲解了PyQt5以及使用QT Designer辅助进行模块化拖拽式图形化UI界面开发 提示:以下是本篇文章正文内容,下面案例可供参考 一、PyQt5是什么? PyQt的开发者是英国的“Riverbank Computing”公司。它提供了GPL(简单的说,以GPL协议发布到网上的素材,你可以使用,也可以更改,但是经过你更改然后再次发布的素材必须也遵守GPL协议,主要要求是必须开源,而且不能删减原作者的声明信息等)与商业协议两种授权方式,因此它可以免费地用于自由软件的开发。翻译成人话就是免费使用就要开源代码,想要商用就需要付费 PyQt5:Qt是一个跨平台的 C++图形用户界面库。QT一度被诺基亚拥,后出售给芬兰的软件公司Digia Oyj。PyQt5是基于Digia公司Qt5的Python接口,由一组Python模块构成。PyQt5本身拥有超过620个类和6000函数及方法。在可以运行于多个平台,包括:Unix, Windows, and Mac OS。 Qt是常用的用户界面设计工具,而在Python中则使用PyQt这一工具包,它是Python编程语言和Qt库的成功融合。这篇博文通过图文详细介绍在PyCharm中如何完整的安装配置PyQt5的所有工具包,主要内容包括PyQt5、PyQt5-tools的依赖包安装和Qt Designer、PyUIC、PyRcc三个工具的设置。简单演示了PyQt5的调用方式及三个工具的使用方法,QT Designer实现拖拽进行可视化UI界面开发 下面登录框界面为使用python开发的简单登录框案例,本文以此案例为案例讲解 二、PyQt5界面开发需要安装的工具 1.工具安装 安装方法一 在windwos进入CMD使用命令安装(示例): pip install PyQt5 pip install PyQt5-tools pip install PyQt5Designer pip install PyQtWebEngine pip install PySimpleGUI pip install PyQt5-sip pip install PyQt5-stubs 安装完成后可以使用pip list 命令进行查看是否安装完成和安装的版本号,这些库都安装上后面都会用到 更换pip库源 安装过程中可能会安装不成功可以换一下pip库的源 pip install pip -U pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple 常用的pip源 1. 中科大源(https://pypi.mirrors.ustc.edu.cn/simple/) 中科大源是中国科学技术大学提供的镜像源,速度快且稳定。 2. 豆瓣源(https://pypi.douban.com/simple/) 豆瓣源是豆瓣提供的镜像源,速度也比较快。 3. 清华源(https://pypi.

【C语言】【数据结构】项目实践——贪吃蛇游戏(超详细)

前言 本篇博客我们来实现一个小游戏项目——贪吃蛇,相信肯定很多人都玩过,那么整个贪吃蛇是怎么实现出来的那,这个项目用到了很多方面的知识:C语言函数、枚举、结构体、动态内存管理、预处理指令、链表、Win32 API等。我们就通过这篇博客一步一步去分析,实现贪吃蛇。 ​💓 个人主页:小张同学zkf ⏩ 文章专栏:数据结构 C语言 若有问题 评论区见📝 🎉欢迎大家点赞👍收藏⭐文章 目录 1.游戏背景 2.Win32 API介绍 2.1Win32 API 2.2控制台程序 2.3控制台屏幕上的坐标COORD 2.4GetStdHandle 2.5GetConsoleCursorInfo 2.6CONSOLE_CURSOR_INFO 2.7SetConsoleCursorInfo 2.8SetConsoleCursorPosition 2.9GetAsyncKeyState 3.贪吃蛇游戏思路 3.1游戏窗口 3.1.1本地化 3.1.2类项 3.1.3setlocale函数 3.1.4宽字符的打印 3.1.5地图坐标 3.2蛇身和食物 3.3数据结构设计 3.4游戏流程设计 4.核心逻辑分析 4.1游戏主逻辑 4.2 游戏开始(GameStart) 4.2.1打印欢迎界面 4.2.2创建地图 4.2.3初始化蛇身 4.2.4创建第一个食物 4.3游戏运行(GameRun) 4.3.1KEY_PRESS 4.3.2PrintHelpInfo 4.3.3蛇身移动(SnakeMove) 4.3.3.1NextIsFood 4.3.3.2 EatFood 4.3.3.3NoFood 4.3.3.4KillByWall 4.3.3.5KillBySelf 4.4游戏结束 5.参考代码 1.游戏背景 贪吃蛇是一款休闲益智类游戏,有PC和手机等多平台版本。既简单又耐玩。该游戏通过控制蛇头方向吃食物,从而使得蛇变得越来越长,贪吃蛇是久负盛名的游戏,它也和俄罗斯方块,扫雷等游戏位列经典游戏的行列。 2.Win32 API介绍 实现贪吃蛇不仅需要C语言与数据结构的一些知识,还要会使用到的一些Win32 API知识,接下来我们就看一下需要用到哪些知识 2.1Win32 API Windows 这个多作业系统除了协调应用程序的执行、分配内存、管理资源之外, 它同时也是一个很大的服务中心,调用这个服务中心的各种服务(每一种服务就是一个函数),可以帮应用程序达到开启视窗、描绘图形、使用周边设备等目的,由于这些函数服务的对象是应用程序(Application), 所以便称之为 Application Programming Interface,简称 API 函数 。 WIN32 API也就是Microsoft Window32位平台的应用程序编程接口 。 2.

回顾苹果 AI 布局:迟到的王,迎接关键一战

文 | 王启隆 出品 | 《新程序员》编辑部 随着诸如 ChatGPT 之类的生成式 AI 工具的迅速普及,越来越多人开始猜测苹果公司在 AI 时代的未来动向:是端出 iOS 版的对话式人工智能?还是革新智能语音助手 Siri? 昨晚,苹果以一场仅 38 分钟的发布会为六月份 WWDC 2024 预热,CEO 蒂姆·库克宣布,此次发布将是 iPad 历史上的重要里程碑。在苹果的一系列宣传中,除了“最薄 iPad”,最引人瞩目的便是苹果推出的最新 M4 芯片:它搭载苹果最强大的神经引擎,每秒执行 38 万亿次操作,比 A11 Bionic 的首代神经引擎快 60 倍,被誉为“极端强大的 AI 芯片”,只需 M2 一半的功耗即可提供相同性能,且在 AI 处理能力上超越当前任何 PC 神经处理单元。 库克曾经如此评价过 AI:它们会嵌入到我们制造的每一个产品中。现在看看苹果在 AI 领域的一系列动作,特别是 Ferret、HUGS、MM1、ReALM 等论文的发布,我们会发现苹果的战略方向仍是“软硬件的结合”,在资源有限的移动设备上高效部署大型语言模型,是实现 AI 技术大众化应用的关键。 WWDC 还有一整月才会亮相,本文将简单回顾苹果这半年的各种动向作为前瞻,让我们一起看看苹果将怎么逐步构建一个以 AI 为驱动的全新生态系统。 Siri——改造它还是“生二胎”? 2023 年 5 月,蒂姆·库克(Tim Cook)在苹果的财报电话会议上表示,人工智能有“许多问题需要解决”,重要的是“在开发方法上要深思熟虑”,并计划继续在深思熟虑的基础上将 AI 融入到产品中。 实际上早在 2019 年,苹果就组建了专注于对话式 AI 的团队,AI 部门主管约翰·詹南德里亚(John Giannandrea)在公司内部领导着大语言模型的研发,他的工作直接向苹果 CEO 蒂姆·库克汇报。但直到 OpenAI 发布 ChatGPT 之前,这个团队一直没传出过什么消息,可谓是起了个大早、赶了个晚集。

【AIGC调研系列】基于人工智能的测试用例生成工具QAMete

百度测试平台QAMate是一个基于人工智能的测试用例生成工具。该平台利用文心大模型,支持从需求文本、表格及整份需求文档中自动生成测试用例[1][6][7]。此外,QAMate还允许用户构建专属的Prompt和业务经验知识库,以定向提升生成效果[1][6][7]。 QAMate项目组不仅关注于测试用例的智能生成,还致力于通过标准化开放共建的Prompt层,以及成熟的脑图用例产品,实现与测试人员的直接闭环数据流动[4][9][10]。这种方法有助于提高测试用例的质量和相关性,从而更有效地支持软件开发和测试过程。 此外,QAMate还涉及到UI自动化用例的录制回放,这是基于真机操作实现的,可以进一步提高测试的准确性和效率[3][5]。同时,平台还支持基于流量或代码生成接口测试用例,这为处理复杂的接口测试提供了便利[3][5]。 总体来看,QAMate作为百度的一个重要组成部分,不仅推动了测试用例自动化的发展,也为软件测试领域带来了新的技术解决方案。 QAMate如何利用文心大模型自动生成测试用例? QAMate利用文心大模型自动生成测试用例的方式主要涉及以下几个步骤: 需求分析与脑图生成:首先,QAMate通过分析软件或系统的需求,使用文心大模型生成相应的脑图用例。这一步骤帮助团队明确测试的范围和重点,为后续的测试用例设计提供指导[15]。UI自动化用例录制:基于真机操作的UI自动化用例录制回放是QAMate的另一个重要环节。通过实际操作界面,记录用户交互过程中的各种情况,这些数据随后被文心大模型处理,以生成具体的测试脚本[15]。接口自动化用例生成:对于需要通过API进行交互的场景,QAMate利用文心大模型从代码中提取相关信息,生成接口自动化测试用例。这包括对HTTP请求和响应的模拟,以及状态验证等[15]。代码质量提升:除了直接生成测试用例外,QAMate还能辅助提升现有代码的质量。通过分析代码中的注释和文档,文心大模型可以自动生成单元测试用例,帮助开发者快速发现并修复潜在的问题[14]。多方面覆盖:为了确保测试的全面性,QAMate设计的测试用例不仅覆盖功能性测试,还包括性能测试和用户体验测试。这确保了软件产品在不同层面上的稳定性和可靠性[13]。 QAMate在提高软件测试质量方面有哪些具体的技术或方法? QAMate在提高软件测试质量方面的具体技术或方法没有直接提及。然而,可以从我搜索到的资料中推断出一些可能与QAMate相关的技术或方法。 首先,根据[17],提高软件测试质量的一个重要步骤是进行测试需求分析。这包括分解功能点并对每个功能点进行需求规则的分析,如输入划分、质量模型分析(功能、性能、安全、易用性、稳定性等各个维度)、功能交互分析和用户关联图分析。这些分析方法有助于确保测试覆盖所有关键方面,从而提高测试的全面性和有效性。 其次,根据[18],明确测试目标也是提高软件测试质量的一个关键步骤。在测试之前,需要对功能和业务进行需求分析,并明确测试目标和预期结果。这有助于确保测试活动紧密围绕实际需求展开,避免资源浪费,并提高测试的针对性和效率。 QAMate支持的UI自动化用例录制回放的技术细节是什么? QAMate支持的UI自动化用例录制回放的技术细节主要包括以下几个方面: 录制过程:录制功能主要由Chrome Extension和Node Process两部分组成。Chrome Extension会对当前浏览器进行全局事件监听,当触发某个事件(比如click)时,即获取当前操作元素的节点信息,同时通过WebSocket发送指令(开始录制、录制、结束录制)、数据(事件类型、节点信息等)[22]。单用例回放及远程监控:系统支持单个用例的回放以及远程监控功能,这意味着用户可以查看特定测试用例的执行情况,确保测试过程的透明性和可追溯性[19][20]。多用例批量回放及报告生成:除了单个用例的回放外,系统还支持多个用例的批量回放,并能自动生成报告。这一功能对于需要同时测试多个功能或场景的用户来说非常有用,可以大幅提高测试效率并提供详细的测试结果分析[19][20]。Webdriver云多节点接入,执行记录增加:系统利用Webdriver技术实现了云端多节点的接入,这不仅增强了系统的扩展性和灵活性,还能通过增加执行记录来优化测试过程,使得测试更加全面和准确[19][20]。跨平台脚本能力:依托于AI和机器学习技术,系统支持对UI界面截图进行OCR识别和图标识别,使得Android端和iOS端使用同一套UI自动化测试脚本成为可能。这种跨平台脚本能力,尤其适用于图标和icon的识别场景,为不同操作系统下的UI自动化测试提供了便利[21]。 参考资料 1. AI原生实践:测试用例创作探索 2. 百度Geek说的个人空间- OSCHINA - 中文开源技术交流社区 3. 人工智能- AI原生实践:测试用例创作探索 4. Ai原生实践:测试用例创作探索 - 百家号 [2024-04-28] 5. AI原生实践:测试用例创作探索原创 6. AI原生实践:测试用例创作探索原 7. AI原生实践:测试用例创作探索 8. AI原生实践:测试用例创作探索 9. AI原生实践:测试用例创作探索- 大模型知识库 10. AI原生实践:测试用例创作探索 11. AI原生实践:测试用例创作探索 12. 文心一言:智能编程助手,轻松生成测试用例。-百度开发者中心 [2023-08-07] 13. 生成式人工智能如何在软件测试领域发挥作用? - ycyzharry 14. 这,就是大模型时代的生产力 | 机器之心 [2023-08-17] 15. Ai原生实践:测试用例创作探索 - 在线工具大全 16. GitHub - qamate/orangehrm-selenium-automation: Writing and automating .