可能是目前最好用的web接口调试工具无需注册(注册后可多终端同步用例)免费(每年付费$60可用云服务,30天免费试用)保存历史记录支持录制请求基于Chrome的V8引擎,支持JS脚本(基本支持ES6,浏览器相关对象和API和require() import等除外)同样的代码和用例可用于自动化接口测试,见它的命令行版本Newman介绍能生成各种语言的HTTP请求代码模板能生成比较好看的在线API文档(支持MarkDown)提供简易版持续集成(Monitor功能,只支持公网IP的请求…不如Jenkins实用)

选它的做自动化测试的理由:

满足互联网公司的多数场景超轻,比另一个热门选择——JMeter门槛低、开发效率高、界面顺眼开发几乎人手一个,容易沟通,容易推动开发自测容易拉功能测试入坑,发生人员变动时容易交接

不选它的理由:

功能受限:Postman运行在沙盒里,Newman虽然基于Node.js,但一套脚本2边共用决定了它的功能不能比Postman多,无法用在以下场景:需要读写文件需要读写数据库需要引入外部库,如不常见/自定义的加密方式非HTTP协议毕竟是调试小工具出身,和成熟的自动化测试框架在管理用例、代码复用、稳定性、报告,甚至易用性上都有明显差距,用的人要有足够能力从坑里爬出来如果项目经常用JMeter做接口测试,有人足够熟悉JMeter,可以考虑把脚本拆分到单个接口的粒度,花点功夫把功能和性能自动化都做了,不用维护2套如果全英文和缺乏中文资料也算的话

安装

https://www.getpostman.com/apps

建议选择Mac/Windows app,比起Chrome app,下载不需要FQ,功能更强大

基本使用

官方文档

教程

接口测试工具 postman, 2016-09-01(基于Chrome版的Postman,和桌面版大同小异)

[API 测试]postman, 2016-02-29

API自动化测试利器——Postman, 2015-09-26(教程里的版本比较旧了,但还是讲得不错)

How to write powerful automated API tests with Postman, Newman and Jenkins, 2015-09-03

How to write automated tests for APIs using Postman – Part 1, 2014-03-07

How to write automated tests for APIs with Postman – Part 2, 2014-04-17

Writing automated tests with Postman – Part 3, 2014-05-09

有些早期文章会提到Jetpack,曾经收10美元,现在成了Postman自带的Collection Runner,可以批量执行用例

示例

Postman Echo

Making the perfect HTTP request using Postman Echo, 2015-11-13

Cooper's Meal Plan

Conditional Workflows in Postman, 2016-03-23

Spotify Playlist Generator

Generate Spotify Playlists using a Postman Collection, 2016-11-09

CurencyCloud的Postman集合和使用说明

录制接口

Capturing requests (native app)

Using Postman Proxy to Capture and Inspect API Calls from iOS or Android Devices,2016-06-26

接口调用方希望测试业务逻辑时,用不着Fiddler/Charles抓包再往里面一个个填这么麻烦

开启Postman的代理(默认5555端口),浏览器/手机设好对应的IP和端口就行

支持正则表达式过滤URL,建议排除掉静态资源、流量统计站和别的后台进程时不时请求的网站

baidu|google|microsoft|github|qq\.com|.*\.(html?|css|js|png|jpe?g|webp|ico)$

可以设置保存的位置:

如果所有操作步骤都要做接口测试,建议直接保存到目标集合

如果一大堆操作里只取其中一个到几个接口,建议保存到历史记录,挑出想要的另存到目标集合,不用浪费时间删

Collection Runner

Running a collection

适合一次运行/调试多个用例,不用自己一个个点发送 适合开发自测接口性能(例如循环个10000次),至少响应时间和稳定性都过关了才交给别人调用 适合做简单的数据驱动测试——CSV文件里写上各种合法非法参数组合,1个集合/文件夹只放1个接口,关联起来点运行就是 runtime、默认行为(比如不保存环境变量)、可以指定数据文件等跟Newman一样,适合用界面调通了用例再放到命令行做持续集成 Postman集合的概念

导出之后可以看到1个集合其实就是1个json文件,打开文件就能看到,里面的item属性是个数组,每个用例都是数组里的1个JSON对象

Postman/Newman1次只能跑1个集合,各个集合之间没有任何关系

Postman文件夹的概念

文件夹实际上也是集合的item数组里的对象,它里面也有1个item数组,文件夹里的用例是这数组里面的对象

collection runner/Newman批量跑用例的最小粒度是文件夹

目前集合下只支持1级文件夹,不推荐场景搞太复杂,用例管理起来有难度 目前集合和文件夹只能按字母顺序排序,用例可以拖动排序 目前搜索不能搜到URL地址,建议用例名写成 /path/to/api 接口描述,方便看和搜索 如果打算做自动化和持续集成:

集合、文件夹的名字建议英文无空格,方便命令行调用 要么不放,要么全放文件夹 每个文件夹测完全独立的子场景,文件夹之间的用例不要有顺序、状态等依赖关系 如果你不是从写用例到搞持续集成都包了并且一直由你自己维护,不能假设别人会按你想要的方式、顺序、设置运行测试

别人写的脚本可能运行整个集合或逐个文件夹运行,不同文件夹之间可能同步可能异步,可能会保存运行中产生的环境变量也可能不保存

此外,越多耦合,稳定性越差,维护工作量越大

流程控制

只有在collection runner或Newman里才生效(在普通界面你选哪个发送就是哪个)

/* 假设2个用例的顺序为: 用例A 用例B 如果希望执行顺序为: 用例A -> 用例B -> 用例A,又不想复制一份用例A,那么 */ // 用例A的Tests里写 if (xxx) postman.setNextRequest('null'); // 终止执行 // 用例B的Tests里写 postman.setNextRequest('用例A'); // 【注意】如果不设终止条件,用例A执行完到用例B,用例B执行完又指向用例A,会构成死循环 // PS:postman是Postman提供的全局对象

断言

Testing Sandbox 内建对象、方法、变量和可用的第三方库介绍

Testing examples

Extracting data from responses and chaining requests, 2014-10-27

在主界面可以靠肉眼看返回结果,但在collection runner/Newman里如果不加断言,跑完没法知道是成功还是失败

断言写在Tests标签页里,上手可以参考文档和界面右边的代码模板:

tests['Status code is 200'] = responseCode.code === 200; // 推荐用全等 ===,确保类型和值都一致

tests['Response time is less than 200ms'] = responseTime < 200; tests['Body matches string'] = responseBody.has('xxx'); // 只要有指定关键字就行,在哪、有几个等都不管 tests['Content-Type is present'] = postman.getResponseHeader('Content-Type') || false; // Postman的断言实际上就是往全局对象

tests 添加键值对 // 它的key会显示在报告界面上,value是可以解析为boolean的表达式 // 如果得出的值是true,在报告里显示为成功,false失败 // 【变通】用总是为真的断言来显示信息 tests[`[INFO] Request params: ${JSON.stringify(request.data)}`] = true; // 显示所有请求参数(在自动化测试里很有用)

tests[`跑第${iteration + 1}次`] = true; // 用在runner里循环很多次时 // 迭代次数 iteration 是Postman提供的全局变量,从0开始 // PS:request是Postman提供的全局对象 // responseCode(对象)、responseTime(数字)、responseBody(字符串)目前是Postman收到服务器返回内容才声明的变量 //

【注意】如果你在做自动化测试,目前在接口超时没返回时: // responseCode、responseTime、responseBody都没定义,使用时会导致脚本出错,判断是否超时没返回的只能靠header // request.data里的变量在超时时不解析,很容易让人误会请求参数传错了,建议此时不显示这行

关于'use strict';

因为Postman提供了不少全局变量,写了'use strict';会在用到这些变量的地方出警告提示

如果平时有养成好习惯,不用容易出错的写法,不写它也没关系

提取接口返回值

返回JSON时

let json = JSON.parse(responseBody); // responseBody是包含整个返回内容的字符串

// 提取某字段的值: let foobar = json.foo.bar[0].foobar;

// 假设结构为 {"foo": {"bar": [{"foobar": 1}, {"baz": 2}]}}

// 想用在自动化测试可以多写点: let json; try { json = JSON.parse(responseBody); } catch (err) { tests['Expect response body to be valid JSON'] = false; tests[`Response body: ${responseBody}`] = true; console.error(err); }

返回HTML时

// A. 用正则表达式匹配 let foo = responseBody.match(/foo/g);

// g 全局 i 不分大小写 m 多行 tests['blahblahblah'] = foo[0] === 'bar';

// 正则里包含变量时: let foo = 'xxx'; let bar = responseBody.match(new RegExp(`^${foo}.*$`, 'g');

// B. 用CheerioJS库(可以让你用jQuery语法): const $ = cheerio.load(responseBody); $.html()

// 整个网页 $('title').text();

// 标签里的文字 </p><p>jQuery replaced by CheerioJS in Postman Sandbox, 2016-08-30 </p><p>提取请求参数的值 </p><p>利用Postman提供的request.data </p><p>如果POST Body里选了form或x-www-form-urlencoded </p><p>request对象的data属性是个对象,里面每个属性对应你填的参数名 </p><p>// 假设有个参数叫phone request.data.phone </p><p>如果Body里选的是raw,request.data是字符串 </p><p>// 假设传JSON字符串,里面有叫做phone的属性 JSON.parse(request.data).phone </p><p>设置环境变量 </p><p>Setting up an environment with variables </p><p>Postman的环境变量分为 environment 和 global 2种 </p><p>实际上就是environment、globals这2个全局的对象(字典)里的内容 </p><p>它们的key作为变量名,value作为变量的值 </p><p>environment </p><p>满足99%的需要,平时只用它就够了,global留到后文讲 </p><p>作用域为整个集合 能创建多个environment文件,方便切换不同测试环境 在地址栏、header、请求参数、外部数据文件里,用 {{变量名}} 获取环境变量的值 </p><p>如:{{URL}}/path/to/api </p><p>(更常见的${}在JS的ES6语法里被占用了,Postman只能选这么个奇怪写法) </p><p>在Pre-request Script和Tests的代码里略有不同: </p><p>/* 官方提供的方法 */ // 设置 postman.setEnvironmentVariable('variableKey', value); </p><p>// 注意:通过菜单或以上方法设置的环境变量,值会转成字符串,取的时候要转换 </p><p>// 获取 let foo = postman.getEnvironmentVariable('variableKey'); </p><p>// 最常用到字符串数字转数字:Number(foo) // 或者万能的 JSON.parse(foo) 字符串的数字、数组、对象、布尔值扔进去都能转成对应的类型 // 更新 // 就是再设置一次同名的环境变量,换别的值 // 清除环境变量 postman.clearEnvironmentVariable('variableKey'); </p><p>/* 懒人版 */ </p><p>// 既然知道实际上是操作 environment 对象,如果你有JS基础,可以直接: </p><p>// 添加属性 environment.variableKey = 12345; </p><p>// 少打字,取出时也不用转换类型 </p><p>// 获取 let foo = environment.variableKey; </p><p>// 清除 delete environment.variableKey; </p><p>// 不要用 environment.variableKey = undefined; 实际上属性还在,只是平时我们发现值是undefined时当它不存在了而已 </p><p>// 而Postman不这么干,它把undefined转成字符串…… </p><p>// 如果你非要跟自己过不去,用了变量名不允许的字符做key(比如有空格),只能写成 environment['variableKey'] </p><p>// 只要没跟自己过不去,可以用ES6的对象解构语法一次取多个: let {key1, key2, key3} = environment; </p><p>【注意】 </p><p>在Postman主界面运行过后,通过代码设置的环境变量会存到IndexedDB,跟在菜单里设置一样,用例跑完不消失 </p><p>但在collection runner或Newman跑则是默认不保存,跑完就消失,做自动化测试时要注意 </p><p>动态请求参数 </p><p>在runner里循环发n次请求/做自动化测试时,有些接口不适合写死参数 </p><p>Postman有以下内建变量,适合一次性使用: {{$guid}} // 生成GUID {{$timestamp}} // 当前时间戳 {{$randomInt}} // 0-1000的随机整数 </p><p>参数依赖上一个请求的返回: 上个请求的Tests里提取参数存环境变量,这个请求里用{{变量名}}取值 </p><p>参数每次都不同,但之后的断言或别的请求里可能还要用: 在Pre-request Script里写代码处理,存为环境变量,参数里用{{变量名}}取值 </p><p>例如 </p><p>const randomInt = (min, max) => Math.floor(Math.random() * (max - min + 1)) + min; </p><p>// 随机整数 const getRandomValue = list => list[randomInt(0, list.length - 1)]; </p><p>// 随机选项 // 随机手机 environment.randomMobile = `18${randomInt(100000000, 999999999)}`; </p><p>// 随机设备名 environment.randomDevice = getRandomValue(['ios', 'android']); </p><p>Postman目前没有很方便的重用代码的手段,编辑框也不是IDE,没智能提示,尽量别整那么复杂 </p><p>调试 </p><p>cmd + alt + c(Windows ctrl + alt + c)打开Postman控制台,可以看请求和响应内容 </p><p>用console.log()打印,到控制台看 </p><p>或tests['这里拼出你想看的字符串'] = true在界面/报告看断言 </p><p>mock </p><p>Using a mocking service to create Postman Collections,2016-01-26 </p><p>global </p><p>不做自动化测试可以跳过这段 </p><p>跟environment几乎完全一样,在地址栏、header、请求参数、外部数据文件里也是{{}}调用,除了: </p><p>只有1个global文件 菜单藏得较深,在生成的API文档里也不解析,决定了它不适合做参数化 environment和global同名时,优先用environment global只建议用在1种场景:定义公共函数 </p><p>先正常地写好函数,再用在线压缩工具压成一行 </p><p>在菜单里选 Bulk Edit,以每行一对 key:value 的形式编辑,变量名做key,函数做value </p><p>assertNotTimeout:var hasResponse=postman.getResponseHeader('Content-Type')?true:false; if(!hasResponse) </p><p>tests['服务端在超时前没返回任何数据,请检查相关服务、网络或反向代理设置(以下跳过其他断言)']=false; logParams:if(hasResponse) </p><p>tests[`[INFO] 请求参数(仅限POST,超时没返回时不解析):${JSON.stringify(request.data)}`]=true; getResponseJson:try{if(hasResponse) var json=JSON.parse(responseBody);}catch(err){ tests['服务端没返回合法的JSON格式,请检查相关服务、网络或反向代理设置(以下跳过其他断言)']=false; </p><p>tests[`[INFO] 返回:${responseBody}`]=true; console.error(err);} assertType:var assertType=(name,value,type)=>{let isType=(type==='array')? Array.isArray(value):typeof value===type; tests[`${name}为${type}(实际值:${value})`]=isType;}; assertEqual:var assertEqual=(name,actual,expected)=>{tests[`${name}等于${expected}(实际值:${actual})`]=actual===expected;}; assertNotEqual:var assertNotEqual=(name,actual,expected)=>{tests[`${name}不等于${expected}(实际值:${actual})`]=actual!==expected;}; // 注意在这里定义变量只有 var 的作用域够大,用 let 或 const 的话eval后就销毁了 </p><p>假设返回 {"name":"张三","userType":1,"settings":[]},在Tests里一上来就写: </p><p>eval(globals.assertNotTimeout); // 判断是否超时(通过有没有Content-Type请求头),超时则断言失败 eval(globals.logParams); // 如果不超时,显示发出的请求参数 eval(globals.getResponseJson); // 如果不超时,解析返回的JSON对象,赋给json变量,返回值不合法则断言失败 // 下面定义了3个公共函数,免得每次断言都要写一大串: eval(globals.assertType); eval(globals.assertEqual); eval(globals.assertNotEqual); // 上面3个基本满足日常使用需要 if (json) { assertType('用户名', json.name, 'string'); // 在报告中显示为: '用户名为string,(实际值:张三)' assertType('设置', json.settings, 'array'); // JS里其实没有array类型(数组是object),这里做了处理,让报告更好懂 assertEqual('用户类型', json.userType, 1); // 显示为: '用户类型等于1,(实际值:1)' assertNotEqual('用户类型', json.userType, 2); // 显示为: '用户类型不等于2,(实际值:1)' } </p><p>在官方给出更方便的重用代码的方法前,这是除了复制粘贴外唯一的重用方法 </p><p>如果不做自动化测试,且断言写得很简单,不建议这么搞 </p><p>如果不幸跳了自动化的坑,通常一个项目会有100~200个接口要做自动化测试,要仔细比较哪种方法成本更高 </p><p>定义函数前要仔细考虑好,万一中途要改参数和返回值,已经写好的n份也得改…… </p><p>建议定义的公共函数不超过个位数,并保留好没压缩的版本,不然别人没法接手 </p><p>Writing a behaviour driven API testing environment within Postman </p><p>// 如果确实要在代码里设global // 官方的: postman.setGlobalVariable('variableKey', value); // 同样存成字符串 let bar = postman.getGlobalVariable('variableKey'); postman.clearGlobalVariable('variableKey'); // 或者自己操作 globals 对象 </p><p>数据文件 </p><p>不做自动化测试可以跳过这段 </p><p>Using data variables to run a collection multiple times </p><p>Using CSV and JSON data files in the Postman Collection Runner, 2014-10-28 </p><p>Using variables inside Postman and Collection Runner, 2014-02-20 </p><p>在collection runner或命令行的Newman里可以加载数据文件 </p><p>/* JSON格式 */ </p><p>// 文件里有且只有1个数组,每个对象算1条用例(在Postman里的全局变量叫做data) </p><p>// key作为变量名,value作为变量的值 </p><p>// 文件里依然可以用 {{}} 拿到环境变量,注意不要把自己绕进去: </p><p>// 如果是Pre-request Script里生成的环境变量,直接写进请求参数,不用经这里 [ {"mobile": "17000000001", "pwd": "123456"}, {"mobile": "17000000002", "pwd": "654321"}, {"mobile": "17000000003", "pwd": ""}, {"mobile": "{{ADMIN_MOBILE}}", "pwd": "{{ADMIN_PWD}}"} ] </p><p>// 显然,这是json文件,并不能在里面写代码(除非你蛋疼在value里写字符串然后在用例里eval) </p><p>// 用例的请求参数里依然用 {{key}} 拿到数据文件里的值,代码里则是 data.key </p><p>// 如果key跟environment/globals里的key重名,这里的 > environment > globals </p><p>/* CSV格式 */ </p><p>// 第1行变量名,下面是值,每行1条用例,没有空格 </p><p>// 没JSON格式的数据文件灵活 mobile,pwd 17000000001,123456 17000000002,654321 17000000003, </p><p>【注意】 </p><p>谨慎使用。这东西增加了调试和定位问题的复杂性,也就大大增加了维护成本 </p><p>而它带来的收益并不明显: </p><p>针对单个接口的简单压力测试 </p><p>Postman不是正经的压测工具,既然选择了它就是图简单方便 </p><p>像JMeter那样用CSV文件做数据源的意义不大,还得另外写程序/脚本生成这样的文件,时间上不划算 </p><p>直接用代码生成数据就好,不差那一两毫秒 </p><p>数据驱动测试:一条用例测多种参数组合,包括合法和非法值,避免复制粘贴n条略有不同的 </p><p>很诱人,但是 </p><p>产品设计时有考虑异常情况吗?需求来源是否统一?需求是否足够稳定?整个项目有统一的异常处理规范还是看开发个人习惯? </p><p>如果不确定有些输入要不要/怎么处理,意味着改动可能会非常大 </p><p>今天非法,明天变合法,后天又变非法 </p><p>如果冒烟用例用在持续集成,有测试不通过会阻止发布,会严重干扰正常发版,也影响大家对自动化测试的信心 </p><p>此外 </p><p>内部的基础组件为了不同项目通用,可能会允许看起来相当没道理的值不对外暴露的接口为了性能,可能会有意去掉所有校验 </p><p>不要因为所谓“测试思维”,就在不了解的情况下为了测试而测试 </p><p>这种力气留到探索性测试和安全测试,自动化测试还是要讲求稳定和省事 </p><p>此外 </p><p>为了能匹配正常和异常情况(和具体哪一种异常情况),断言必须写得比平时复杂然后你会希望把断言条件也写进数据文件里,一种格式,eval后到处通用然后数据文件的格式会变得远比上面的示例复杂然后你会准备一键生成模板的脚本,批量修改的脚本,封装Newman的脚本,一个框架的雏形……别问我怎么知道的 </p><p>然后你回过头发现,一开始不用数据文件不就省事多了?! </p><p>  </p><p>感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走: </p><p>这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取  </p><p> </p><p>推荐文章</p><div class="ly_isview_code_1"><div class="ly_isview_codea" data-id="713998622"><span><a href="https://www.kuazhi.com/zb_system/login.php" target="_blank">评论可见</a>,请评论后查看内容,谢谢!!!评论后请刷新页面。</span></div></div> </div> <div class="copyright"><blockquote>本文由 用户 于 2024-05-14 发布在 夸智网,如有疑问,请联系我们。<br>本文链接:<a href="https://www.kuazhi.com/post/713998622.html">https://www.kuazhi.com/post/713998622.html</a></blockquote></div> <div class="single-share"> <div class="post-share"> <a title="分享"><i class="jzicon-jzfenxiang"></i></a> <div class="share-icons share-sns" data-title="测试工具 测试用例 功能测试 单元测试 selenium jmeter postman做接口自动化测试" data-url="https://www.kuazhi.com/post/713998622.html"> <span class="share-icon share-wechat cl" data-type="wechat" title="分享到微信"><i class="jzicon-weixin"></i><span id="wechat-qrcode"></span></span> <span class="share-icon share-sina-weibo cl" data-type="weibo" title="分享到微博"><i class="jzicon-weibo"></i></span><span class="share-icon share-qq cl" data-type="qq" title="分享到QQ好友"><i class="jzicon-qq"></i></span> </div> </div> <div class="post-like"> <a href="javascript:;" onclick="Jz52_tsqa_prise('713998622')" class="Jz52_tsqa_prise_id-713998622 dotGood Jz52_tsqa_prise badge" title="好文!一定要点赞!" data-badge="0"><i class="jzicon-jzzan-h"></i><em class="emz">0</em><em>赞</em></a> </div></div> </div> <div class="nextpro www_kuazhi_com"> <div class="prev"> <article class="post-overlay"> <div class="background-img" style="background-image:url(https://www.kuazhi.com/zb_users/theme/Jz52_tsqa/style/images/prevnoimg.jpg)"> </div> <div class="post_text"> <span><i class="jzicon-angle-left"></i>上一篇</span> <h3 class="post__title typescale-1 nav-prev">【1】paddle飞桨框架高层API使用讲解</h3> </div> <a href="https://www.kuazhi.com/post/713998615.html" class="link-overlay"></a> </article> </div> <div class="next"> <article class="post-overlay"> <div class="background-img" style="background-image:url(https://www.kuazhi.com/zb_users/theme/Jz52_tsqa/style/images/nextnoimg.jpg)"> </div> <div class="post_text"> <span>下一篇<i class="jzicon-angle-right"></i></span> <h3 class="post__title typescale-1 nav-next">测试工具 【Postman】Postman接口测试以及使用案例(92)</h3> </div> <a href="https://www.kuazhi.com/post/713998629.html" class="link-overlay"></a> </article> </div> </div> <div class="related-list www_kuazhi_com"> <h3><i class="jzicon-jztuwen"></i> 相关文章</h3> <ul> <li><a href="https://www.kuazhi.com/post/448950.html" title="json javascript js-xlsx 使用总结 实现前端解析excel"><p>json javascript js-xlsx 使用总结 实现前端解析excel</p></a> </li> <li><a href="https://www.kuazhi.com/post/426403.html" title="java 后端 Spring JdbcTemplate.queryForObject()"><p>java 后端 Spring JdbcTemplate.queryForObject()</p></a> </li> <li><a href="https://www.kuazhi.com/post/714484471.html" title="eureka 云原生 Docker空间不够,扩容方法"><p>eureka 云原生 Docker空间不够,扩容方法</p></a> </li> <li><a href="https://www.kuazhi.com/post/409431.html" title="tcp/ip 网络 udp TCP通信相关函数"><p>tcp/ip 网络 udp TCP通信相关函数</p></a> </li> <li><a href="https://www.kuazhi.com/post/712099839.html" title="Java配置47-Spring Eureka 未授权访问漏洞修复"><p>Java配置47-Spring Eureka 未授权访问漏洞修复</p></a> </li> <li><a href="https://www.kuazhi.com/post/713209757.html" title="spring cloud 分布式 微服务 后端 SpringCloud-Eureka原理分析"><p>spring cloud 分布式 微服务 后端 SpringCloud-Eureka原理分析</p></a> </li> <li><a href="https://www.kuazhi.com/post/382202.html" title="pycharm Python之turtle库的学习与使用——画图"><p>pycharm Python之turtle库的学习与使用——画图</p></a> </li> <li><a href="https://www.kuazhi.com/post/713732699.html" title="单片机 嵌入式硬件 在STM32上实现RS485通信"><p>单片机 嵌入式硬件 在STM32上实现RS485通信</p></a> </li> </ul> </div> <div class="comments www_kuazhi_com"> <div id="comments" class="comments-area clearfix"> <div class="comment-list"><!--评论框--><div class="jz-comment" id="divCommentPost"><h4 class="comments-title"> <span><i class="jzicon-jzqipaoc"></i>发表评论</span><a rel="nofollow" id="cancel-reply" href="#divCommentPost" style="display:none;float:right;"><small>取消回复</small></a></h4> <form id="frmSumbit" target="_self" method="post" action="https://www.kuazhi.com/zb_system/cmd.php?act=cmt&postid=713998622&key=265ef3b57221ceb4016bd5d893bf1c95" ><input type="hidden" name="inpId" id="inpId" value="713998622"><input type="hidden" name="inpRevID" id="inpRevID" value="0"><div class="jz-comment-box jz-comment-ul3"> <input type="text" name="inpName" id="inpName" class="text" value="" size="28" tabindex="1" placeholder="名称(*)"> </div> <div class="jz-comment-box jz-comment-ul3 jz-comment-ul3-2"> <input type="text" name="inpEmail" id="inpEmail" class="text" value="" size="28" tabindex="2" placeholder="邮箱"> </div> <div class="jz-comment-box jz-comment-ul3"> <input type="text" name="inpHomePage" id="inpHomePage" class="text" value="" size="28" tabindex="3" placeholder="网站"> </div><div class="jz-comment-box jz-comment-textarea"> <textarea name="txaArticle" id="txaArticle" class="text" cols="50" rows="4" tabindex="5" placeholder="欢迎在这里交流评论,但是垃圾评论不受欢迎!"></textarea> </div><input name="sumbit" type="submit" tabindex="6" value="发表评论" onclick="return zbp.comment.post()" class="jz-commbut"> </form></div><label id="AjaxCommentBegin"></label><!--评论输出--><!--评论翻页条输出--><div class="pagelist page-comment"> </div><label id="AjaxCommentEnd"></label></div> </div></div> </div> </div> <aside id="sticky-wrapper"><div> <span class="ifread"><a href="javascript:;" onclick="Jz52_tsqa_prise('713998622')" class="Jz52_tsqa_prise_id-713998622 dotGood Jz52_tsqa_prise badge" title="好文!一定要点赞!" data-badge="0"><i class="jzicon-jzzan-h"></i><em class="emz">0</em><em>赞</em></a></span><span class="ifread"><a title="回复" href="#divCommentPost" class="badge" data-badge="0"><i class="jzicon-message-3-fill"></i></a></span><span class="ifread"><a title="热度" href="#" class="badge" data-badge="1"><i class="jzicon-fire-fill"></i></a></span><span class="ifread Cshare"><a title="分享" href="javascript:;" class=""><i class="jzicon-share-forward-fill"></i></a> <em class="share-sns" data-title="测试工具 测试用例 功能测试 单元测试 selenium jmeter postman做接口自动化测试" data-url="https://www.kuazhi.com/post/713998622.html"> <span class="cl" data-type="wechatl" title="分享到微信"><a title="分享到微信" href="#" class="bds_weixin" ><i class="jzicon-weixin"></i>微信<span id="wechat-qrcodel"></span></a></span><span class="cl" data-type="weibo" title="分享到微博"><a title="分享到新浪微博" href="#" class="bds_tsina" ><i class="jzicon-weibo"></i>新浪微博</a></span><span class="cl" data-type="qzone" title="分享到QQ空间"><a title="分享到QQ空间" href="#" class="bds_qzone" ><i class="jzicon-qzone"></i>QQ空间</a></span><span class="cl" data-type="qq" title="分享到QQ好友"><a title="分享到QQ好友" href="#" class="bds_qq" ><i class="jzicon-qq"></i>QQ</a></span> </em></span><span style="margin-top: 30px;"><a href="javascript:;" title="沉浸阅读" class="goread"><i class="jzicon-book-read-fill"></i></a></span><span class="ifread"><a title="智能问答" href="http://ai.kuazhi.com/ai_chat" class=""><i class=" jzicon-jzqipaoa "></i></a></span></div></aside> <aside id="sidebar-right"><div class="widget ifread" id="side-new-userarticle"><h3 class="function_t">TA的新帖</h3><ul><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"><a class="list-title" href="https://www.kuazhi.com/post/712891608.html" target="_blank" title="算法 机器学习 python 银行搜集了用户贷款、收入和信用卡是否逾期的数据。请使用这些数据建立一个能预测信用卡逾期情况的逻辑回归模型。">算法 机器学习 python 银行搜集了用户贷款、收入和信用卡是否逾期的数据。请使用这些数据建立一个能预测信用卡逾期情况的逻辑回归模型。</a></div><div class="list-footer"><span>2024-06-14</span></div></div><div class="clear"></div></li><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"><a class="list-title" href="https://www.kuazhi.com/post/714480936.html" target="_blank" title="语音合成 创业创新 科技 人工智能 交互 拥有TTS语音助手的智能充电桩,让充电更简单,更安心!">语音合成 创业创新 科技 人工智能 交互 拥有TTS语音助手的智能充电桩,让充电更简单,更安心!</a></div><div class="list-footer"><span>2024-06-14</span></div></div><div class="clear"></div></li><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"><a class="list-title" href="https://www.kuazhi.com/post/714132077.html" target="_blank" title="派出所大数据流调(派出所大数据运用情况)">派出所大数据流调(派出所大数据运用情况)</a></div><div class="list-footer"><span>2024-06-14</span></div></div><div class="clear"></div></li><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"><a class="list-title" href="https://www.kuazhi.com/post/714190639.html" target="_blank" title="去中心化 加密经济时代:Web3如何改变我们的生活方式">去中心化 加密经济时代:Web3如何改变我们的生活方式</a></div><div class="list-footer"><span>2024-06-14</span></div></div><div class="clear"></div></li><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"><a class="list-title" href="https://www.kuazhi.com/post/714472480.html" target="_blank" title="Scrum看板中到底需不需要测试列">Scrum看板中到底需不需要测试列</a></div><div class="list-footer"><span>2024-06-13</span></div></div><div class="clear"></div></li><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"><a class="list-title" href="https://www.kuazhi.com/post/714012223.html" target="_blank" title="人工智能 python opencv 计算机视觉 图像预处理(2)图像去噪之常见的去噪方法">人工智能 python opencv 计算机视觉 图像预处理(2)图像去噪之常见的去噪方法</a></div><div class="list-footer"><span>2024-06-13</span></div></div><div class="clear"></div></li></ul></div><div id="directory"></div><div class="widget ifread www_kuazhi_com" id="side-hot-view-item"><h3 class="function_t">热门文章</h3><ul><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"> <a class="list-title" href="https://www.kuazhi.com/post/714196288.html" target="_blank" title="EducUp Studio">EducUp Studio</a> </div><div class="list-footer"> <span>2024-06-13</span> </div></div></li><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"> <a class="list-title" href="https://www.kuazhi.com/post/714334468.html" target="_blank" title="Watermark Remover by Magic Studio">Watermark Remover by Magic Studio</a> </div><div class="list-footer"> <span>2024-06-13</span> </div></div></li><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"> <a class="list-title" href="https://www.kuazhi.com/post/714335203.html" target="_blank" title="Spiritme AI ScriptWriter">Spiritme AI ScriptWriter</a> </div><div class="list-footer"> <span>2024-06-13</span> </div></div></li><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"> <a class="list-title" href="https://www.kuazhi.com/post/712808054.html" target="_blank" title="Broadn">Broadn</a> </div><div class="list-footer"> <span>2024-06-13</span> </div></div></li><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"> <a class="list-title" href="https://www.kuazhi.com/post/712808048.html" target="_blank" title="VWO">VWO</a> </div><div class="list-footer"> <span>2024-06-13</span> </div></div></li><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"> <a class="list-title" href="https://www.kuazhi.com/post/714334391.html" target="_blank" title="Aispect">Aispect</a> </div><div class="list-footer"> <span>2024-06-13</span> </div></div></li><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"> <a class="list-title" href="https://www.kuazhi.com/post/714194391.html" target="_blank" title="ExtendMusic.AI">ExtendMusic.AI</a> </div><div class="list-footer"> <span>2024-06-13</span> </div></div></li><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"> <a class="list-title" href="https://www.kuazhi.com/post/712808432.html" target="_blank" title="ExplainThis AI">ExplainThis AI</a> </div><div class="list-footer"> <span>2024-06-13</span> </div></div></li><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"> <a class="list-title" href="https://www.kuazhi.com/post/712807473.html" target="_blank" title="Coqui">Coqui</a> </div><div class="list-footer"> <span>2024-06-13</span> </div></div></li><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"> <a class="list-title" href="https://www.kuazhi.com/post/714313524.html" target="_blank" title="HiPDF-免费PDF在线编辑工具_PDF转Word_PDF在线转换">HiPDF-免费PDF在线编辑工具_PDF转Word_PDF在线转换</a> </div><div class="list-footer"> <span>2024-06-13</span> </div></div></li><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"> <a class="list-title" href="https://www.kuazhi.com/post/712808436.html" target="_blank" title="Ferret AI">Ferret AI</a> </div><div class="list-footer"> <span>2024-06-13</span> </div></div></li><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"> <a class="list-title" href="https://www.kuazhi.com/post/714309870.html" target="_blank" title="演界网官网 - 精美PPT模板会员免费下载,矢量图片素材多品类模板服务平台">演界网官网 - 精美PPT模板会员免费下载,矢量图片素材多品类模板服务平台</a> </div><div class="list-footer"> <span>2024-06-14</span> </div></div></li><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"> <a class="list-title" href="https://www.kuazhi.com/post/712808958.html" target="_blank" title="ChatGPT Data & Analytics">ChatGPT Data & Analytics</a> </div><div class="list-footer"> <span>2024-06-13</span> </div></div></li><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"> <a class="list-title" href="https://www.kuazhi.com/post/712807922.html" target="_blank" title="Thekeys">Thekeys</a> </div><div class="list-footer"> <span>2024-06-13</span> </div></div></li><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"> <a class="list-title" href="https://www.kuazhi.com/post/712807714.html" target="_blank" title="typly">typly</a> </div><div class="list-footer"> <span>2024-06-13</span> </div></div></li><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"> <a class="list-title" href="https://www.kuazhi.com/post/714333250.html" target="_blank" title="AskMyDocs.ai">AskMyDocs.ai</a> </div><div class="list-footer"> <span>2024-06-13</span> </div></div></li><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"> <a class="list-title" href="https://www.kuazhi.com/post/714334195.html" target="_blank" title="Pika">Pika</a> </div><div class="list-footer"> <span>2024-06-13</span> </div></div></li><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"> <a class="list-title" href="https://www.kuazhi.com/post/712807992.html" target="_blank" title="Usetwain">Usetwain</a> </div><div class="list-footer"> <span>2024-06-14</span> </div></div></li><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"> <a class="list-title" href="https://www.kuazhi.com/post/712808647.html" target="_blank" title="pdflux">pdflux</a> </div><div class="list-footer"> <span>2024-06-13</span> </div></div></li><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"> <a class="list-title" href="https://www.kuazhi.com/post/712807948.html" target="_blank" title="Resemble">Resemble</a> </div><div class="list-footer"> <span>2024-06-13</span> </div></div></li><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"> <a class="list-title" href="https://www.kuazhi.com/post/714196610.html" target="_blank" title="Artius">Artius</a> </div><div class="list-footer"> <span>2024-06-13</span> </div></div></li><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"> <a class="list-title" href="https://www.kuazhi.com/post/712807657.html" target="_blank" title="Neural Canvas">Neural Canvas</a> </div><div class="list-footer"> <span>2024-06-13</span> </div></div></li><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"> <a class="list-title" href="https://www.kuazhi.com/post/712807748.html" target="_blank" title="ParagraphAI">ParagraphAI</a> </div><div class="list-footer"> <span>2024-06-13</span> </div></div></li><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"> <a class="list-title" href="https://www.kuazhi.com/post/712807249.html" target="_blank" title="Browse AI">Browse AI</a> </div><div class="list-footer"> <span>2024-06-13</span> </div></div></li><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"> <a class="list-title" href="https://www.kuazhi.com/post/714195798.html" target="_blank" title="AI Content Detector">AI Content Detector</a> </div><div class="list-footer"> <span>2024-06-13</span> </div></div></li><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"> <a class="list-title" href="https://www.kuazhi.com/post/712808356.html" target="_blank" title="Article Audio">Article Audio</a> </div><div class="list-footer"> <span>2024-06-13</span> </div></div></li><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"> <a class="list-title" href="https://www.kuazhi.com/post/712807456.html" target="_blank" title="Getimg.ai">Getimg.ai</a> </div><div class="list-footer"> <span>2024-06-14</span> </div></div></li><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"> <a class="list-title" href="https://www.kuazhi.com/post/712808688.html" target="_blank" title="数字鸭AI助手">数字鸭AI助手</a> </div><div class="list-footer"> <span>2024-06-13</span> </div></div></li><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"> <a class="list-title" href="https://www.kuazhi.com/post/712807709.html" target="_blank" title="Elephas">Elephas</a> </div><div class="list-footer"> <span>2024-06-13</span> </div></div></li><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"> <a class="list-title" href="https://www.kuazhi.com/post/712807697.html" target="_blank" title="TinyWow">TinyWow</a> </div><div class="list-footer"> <span>2024-06-13</span> </div></div></li></ul></div><div class="widget ifread www_kuazhi_com" id="side-hot-cmt-item"><h3 class="function_t">热评文章</h3><ul><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"> <a class="list-title" href="https://www.kuazhi.com/post/712831467.html" target="_blank" title="柚子快报赚钱软件下载778899分享:UE4逆向篇-1">柚子快报赚钱软件下载778899分享:UE4逆向篇-1</a> </div><div class="list-footer"> <span>2024-06-13</span> </div></div></li><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"> <a class="list-title" href="https://www.kuazhi.com/post/428443.html" target="_blank" title="人工智能 8个免费使用ChatGPT网站,部分可使用gpt4">人工智能 8个免费使用ChatGPT网站,部分可使用gpt4</a> </div><div class="list-footer"> <span>2024-06-14</span> </div></div></li><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"> <a class="list-title" href="https://www.kuazhi.com/post/418121.html" target="_blank" title="spring java spring boot swagger在项目中的使用,快速上手。">spring java spring boot swagger在项目中的使用,快速上手。</a> </div><div class="list-footer"> <span>2024-06-13</span> </div></div></li><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"> <a class="list-title" href="https://www.kuazhi.com/post/714003606.html" target="_blank" title="android 开发语言 visual studio code 前端 【PHP【实战项目】系统性教学】——使用最精简的代码完成用户的登录与退出">android 开发语言 visual studio code 前端 【PHP【实战项目】系统性教学】——使用最精简的代码完成用户的登录与退出</a> </div><div class="list-footer"> <span>2024-06-14</span> </div></div></li><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"> <a class="list-title" href="https://www.kuazhi.com/post/713818988.html" target="_blank" title="算法 华为机试 JavaScript C语言 华为OD机试 - 推荐多样性(Java & JS & Python & C & C++)">算法 华为机试 JavaScript C语言 华为OD机试 - 推荐多样性(Java & JS & Python & C & C++)</a> </div><div class="list-footer"> <span>2024-06-14</span> </div></div></li><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"> <a class="list-title" href="https://www.kuazhi.com/post/713336730.html" target="_blank" title="算法 华为机试 JavaScript C语言 华为OD机试 - 学生重新排队(Java & JS & Python & C & C++)">算法 华为机试 JavaScript C语言 华为OD机试 - 学生重新排队(Java & JS & Python & C & C++)</a> </div><div class="list-footer"> <span>2024-06-14</span> </div></div></li><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"> <a class="list-title" href="https://www.kuazhi.com/post/713162402.html" target="_blank" title="驱动开发 音视频 视频编解码 h.264 h.265 FFmpeg 在Windows环境下 Intel ,Nvidia ,AMD 硬件加速编解码支持列表">驱动开发 音视频 视频编解码 h.264 h.265 FFmpeg 在Windows环境下 Intel ,Nvidia ,AMD 硬件加速编解码支持列表</a> </div><div class="list-footer"> <span>2024-06-13</span> </div></div></li><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"> <a class="list-title" href="https://www.kuazhi.com/post/713218717.html" target="_blank" title="华为机试 华为机考 2024华为OD机试真题【区间交叠/贪心算法】【 Java 】">华为机试 华为机考 2024华为OD机试真题【区间交叠/贪心算法】【 Java 】</a> </div><div class="list-footer"> <span>2024-06-14</span> </div></div></li><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"> <a class="list-title" href="https://www.kuazhi.com/post/712794601.html" target="_blank" title="软件测试 软件测试工程师 负载测试 自动化测试 Jmeter性能测试 【性能测试】稳定性/并发压力测试的TPS计算+5W并发场景设计...">软件测试 软件测试工程师 负载测试 自动化测试 Jmeter性能测试 【性能测试】稳定性/并发压力测试的TPS计算+5W并发场景设计...</a> </div><div class="list-footer"> <span>2024-06-14</span> </div></div></li><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"> <a class="list-title" href="https://www.kuazhi.com/post/712791731.html" target="_blank" title="kotlin 开发语言 Android动态更换图标">kotlin 开发语言 Android动态更换图标</a> </div><div class="list-footer"> <span>2024-06-14</span> </div></div></li><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"> <a class="list-title" href="https://www.kuazhi.com/post/576986.html" target="_blank" title="javascript 前端 Typescript 之接口 interface(详解)">javascript 前端 Typescript 之接口 interface(详解)</a> </div><div class="list-footer"> <span>2024-06-14</span> </div></div></li><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"> <a class="list-title" href="https://www.kuazhi.com/post/542966.html" target="_blank" title="colab读取google drive的文件">colab读取google drive的文件</a> </div><div class="list-footer"> <span>2024-06-13</span> </div></div></li><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"> <a class="list-title" href="https://www.kuazhi.com/post/506592.html" target="_blank" title="ubuntu 驱动更新后导致无法进入界面">ubuntu 驱动更新后导致无法进入界面</a> </div><div class="list-footer"> <span>2024-06-14</span> </div></div></li><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"> <a class="list-title" href="https://www.kuazhi.com/post/463744.html" target="_blank" title="python selenium 自动化 天津大学成绩/通知查询脚本">python selenium 自动化 天津大学成绩/通知查询脚本</a> </div><div class="list-footer"> <span>2024-06-14</span> </div></div></li><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"> <a class="list-title" href="https://www.kuazhi.com/post/444170.html" target="_blank" title="typescript yarn vue3代码规范">typescript yarn vue3代码规范</a> </div><div class="list-footer"> <span>2024-06-14</span> </div></div></li><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"> <a class="list-title" href="https://www.kuazhi.com/post/431841.html" target="_blank" title="机器学习 逻辑回归 人工智能 MindSpore:损失函数nn.SoftmaxCrossEntropyWithLogits 解析">机器学习 逻辑回归 人工智能 MindSpore:损失函数nn.SoftmaxCrossEntropyWithLogits 解析</a> </div><div class="list-footer"> <span>2024-06-14</span> </div></div></li><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"> <a class="list-title" href="https://www.kuazhi.com/post/428781.html" target="_blank" title="vscode cmake .net开发实践: C#如何调用C/C++库">vscode cmake .net开发实践: C#如何调用C/C++库</a> </div><div class="list-footer"> <span>2024-06-14</span> </div></div></li><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"> <a class="list-title" href="https://www.kuazhi.com/post/419637.html" target="_blank" title="c++ visualstudio 计算机视觉 浅谈OpenCV——filter2D根据代码讲原理">c++ visualstudio 计算机视觉 浅谈OpenCV——filter2D根据代码讲原理</a> </div><div class="list-footer"> <span>2024-06-14</span> </div></div></li><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"> <a class="list-title" href="https://www.kuazhi.com/post/397706.html" target="_blank" title="数据分析 nosql redis Reids常用操作">数据分析 nosql redis Reids常用操作</a> </div><div class="list-footer"> <span>2024-06-14</span> </div></div></li><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"> <a class="list-title" href="https://www.kuazhi.com/post/394670.html" target="_blank" title="PostgreSQL和PostGIS安装以及如何连接到ArcGIS pro">PostgreSQL和PostGIS安装以及如何连接到ArcGIS pro</a> </div><div class="list-footer"> <span>2024-06-14</span> </div></div></li><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"> <a class="list-title" href="https://www.kuazhi.com/post/391373.html" target="_blank" title="云原生 黄东旭:开发者的“技术无感化”时代,从 Serverless HTAP 数据库开始 | PingCAP DevCon 2022">云原生 黄东旭:开发者的“技术无感化”时代,从 Serverless HTAP 数据库开始 | PingCAP DevCon 2022</a> </div><div class="list-footer"> <span>2024-06-14</span> </div></div></li><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"> <a class="list-title" href="https://www.kuazhi.com/post/306839.html" target="_blank" title="java tomcat eclipse 【系统分析与设计】高校学生社团管理系统">java tomcat eclipse 【系统分析与设计】高校学生社团管理系统</a> </div><div class="list-footer"> <span>2024-06-13</span> </div></div></li><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"> <a class="list-title" href="https://www.kuazhi.com/post/330907.html" target="_blank" title="柚子快报邀请码有没关系的778899分享:解决win10卡的问题">柚子快报邀请码有没关系的778899分享:解决win10卡的问题</a> </div><div class="list-footer"> <span>2024-06-14</span> </div></div></li><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"> <a class="list-title" href="https://www.kuazhi.com/post/332730.html" target="_blank" title="java~springcloud微服务目录索引">java~springcloud微服务目录索引</a> </div><div class="list-footer"> <span>2024-06-14</span> </div></div></li><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"> <a class="list-title" href="https://www.kuazhi.com/post/333157.html" target="_blank" title="linux查看日志文件tail -f用法 -九五小庞">linux查看日志文件tail -f用法 -九五小庞</a> </div><div class="list-footer"> <span>2024-06-14</span> </div></div></li><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"> <a class="list-title" href="https://www.kuazhi.com/post/335818.html" target="_blank" title="Linux Namespace : PID">Linux Namespace : PID</a> </div><div class="list-footer"> <span>2024-06-14</span> </div></div></li><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"> <a class="list-title" href="https://www.kuazhi.com/post/66030.html" target="_blank" title="visualstudio c语言 c++ Visual Studio 2022最新版安装教程(数千字图文详解),一步步教会你如何安装并运行VS2022(+背景图设置)">visualstudio c语言 c++ Visual Studio 2022最新版安装教程(数千字图文详解),一步步教会你如何安装并运行VS2022(+背景图设置)</a> </div><div class="list-footer"> <span>2024-06-13</span> </div></div></li><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"> <a class="list-title" href="https://www.kuazhi.com/post/714484415.html" target="_blank" title="网络 电脑文件夹怎么加密?文件夹加密方法介绍">网络 电脑文件夹怎么加密?文件夹加密方法介绍</a> </div><div class="list-footer"> <span>2024-06-14</span> </div></div></li><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"> <a class="list-title" href="https://www.kuazhi.com/post/714484408.html" target="_blank" title="网络安全 web安全 网络攻击模型 安全威胁分析 安全架构 可信计算技术 内网安全--小结">网络安全 web安全 网络攻击模型 安全威胁分析 安全架构 可信计算技术 内网安全--小结</a> </div><div class="list-footer"> <span>2024-06-14</span> </div></div></li><li class="widget-list-item"><div class="widget-post-list-item"><div class="list-body"> <a class="list-title" href="https://www.kuazhi.com/post/714484401.html" target="_blank" title="柚子快报激活码多少778899分享:xamarin之 安装工具介绍">柚子快报激活码多少778899分享:xamarin之 安装工具介绍</a> </div><div class="list-footer"> <span>2024-06-14</span> </div></div></li></ul></div><div class="widget ifread www_kuazhi_com" id="side-new-comment-item"><h3 class="function_t">最新评论</h3><ul><li><a href="https://www.kuazhi.com/post/553464.html#cmt557633539" title="郑健谕在全网最详细中英文ChatGPT-GPT-4示例文档-读书书单推荐从0到1快速入门——官网推荐的48种最佳应用场景(附python/node.js/curl命令源代码,小白也能学)的评论"><img alt="郑健谕" src="//dn-qiniu-avatar.qbox.me/avatar/9fe7a3416623da9f3a9f7239c6da6ecc.png?s=60&d=mm&r=G" class="avatar" height="24" width="24"><p>以上内容提到了如何通过ChatGPT来推荐适合自己阅读的科幻小说清单,并提供了Python和Node.js接口请求示例以及curl命令示例,还介绍了如何下载相关资料进行学习。这些示例代码中使用的API密钥需要从环境变量中获取,而在实际应用中,应该将API密钥存储在安全的地方,以避免泄露风险,对于curl命令示例中的OPENAI_API_KEY变量,也需要确保该变量已经正确设置。除此之外,以上内容没有明确指出所使用的ChatGPT模型的具体版本号和参数设置,因此可能会导致生成的列表结果不够准确或符合预期,在使用ChatGPT进行文本生成时,建议根据具体需求调整模型参数,并根据实际情况进行测试和优化。</p><span>2024-06-14</span></a></li><li><a href="https://www.kuazhi.com/post/553395.html#cmt557633532" title="柳云居士在Python中TypeError: ‘str‘ object is not callable 问题的解决方法的评论"><img alt="柳云居士" src="//dn-qiniu-avatar.qbox.me/avatar/c56009a6f0a0ff9e20b8722652455065.png?s=60&d=mm&r=G" class="avatar" height="24" width="24"><p>在Python中,TypeError: 'str' object is not callable 错误通常是由于尝试调用一个不可调用的对象导致的,这个问题的解决方法是重命名变量,避免与Python的底层函数(如str())冲突。如果我们有以下代码:```pythonstr = helloresult = str()```这里,我们将一个字符串赋值给了变量str,然后试图将其作为函数调用,这就是为什么会出现TypeError: 'str' object is not callable错误的原因。为了解决这个问题,我们需要将变量名str更改为其他名称,以避免与内置函数冲突,在这个例子中,我们可以将变量名更改为str_value:```pythonstr_value = helloresult = str_value()```这样就不会出现TypeError: 'str' object is not callable错误了,为了避免这种错误,我们在定义变量时应尽量选择独特的名称,不要与Python的内置函数冲突。</p><span>2024-06-14</span></a></li><li><a href="https://www.kuazhi.com/post/553357.html#cmt557633525" title="冉访琴在chatGPT手机登录的评论"><img alt="冉访琴" src="//dn-qiniu-avatar.qbox.me/avatar/dad22dd3905abd30759f71fcacbef358.png?s=60&d=mm&r=G" class="avatar" height="24" width="24"><p>手机登录chatGPT的实现相对简单,只需要下载相应的应用,注册并登录账号,然后进行个人设置,就可以随时随地与chatGPT进行交流,需要注意的是,chatGPT仍然是一种人工智能技术,受限于算法和数据的局限性,可能在复杂的情境下无法正确理解用户的问题,或者给出准确的答案,在使用手机登陆chatGPT时,我们要保持科学理性的态度,同时提高对其回答的辨别能力。</p><span>2024-06-14</span></a></li><li><a href="https://www.kuazhi.com/post/553193.html#cmt557633518" title="Handat在chatgpt谷歌账号的评论"><img alt="Handat" src="//dn-qiniu-avatar.qbox.me/avatar/dbd34ac1dee60c4ef28323e266070e42.png?s=60&d=mm&r=G" class="avatar" height="24" width="24"><p>在本文中,作者介绍了chatgpt谷歌账号、淘宝chatgpt账号、chatgpt国外账号和chatgpt购买账号的功能和优势,这些账号为用户提供了智能化的对话助手服务,帮助用户解决各种问题,提高生活质量和工作效率。文章存在一些问题:1. 文章内容较为简短,没有对每个账号的具体功能和优势进行详细阐述,建议作者可以针对每个账号进行更详细的介绍,以便读者更好地了解和使用这些账号。2. 文章中提到了chatgpt作为一款基于大规模模型的自然语言处理工具,但没有对其技术原理和实现进行解释,建议作者可以简要介绍一下chatgpt的技术原理,以便读者更好地理解其工作原理和功能。3. 文章中提到了人工智能技术的不断发展,但没有对未来发展趋势和可能带来的影响进行分析,建议作者可以结合当前的技术发展状况,对未来人工智能技术的发展趋势和可能带来的影响进行预测和分析。4. 文章中存在一些表述不够准确的地方,这使得chatgpt不仅仅是一个智能对话助手,更是一个能够根据用户需求灵活应变的多功能工具。”建议作者在修改时对这些表述进行斟酌和优化,以确保表述的准确性和通顺性。</p><span>2024-06-14</span></a></li><li><a href="https://www.kuazhi.com/post/552879.html#cmt557633511" title="蒙勋润在chatGPT心理咨询融资的评论"><img alt="蒙勋润" src="//dn-qiniu-avatar.qbox.me/avatar/2d10667fff738961c55dd8ac5d7ca681.png?s=60&d=mm&r=G" class="avatar" height="24" width="24"><p>chatGPT作为一种基于人工智能技术的聊天机器人,可以为用户提供心理咨询服务,它具有高度便捷、保护个人隐私等优势,但在处理复杂心理问题和真实的情感支持方面存在局限性,在使用chatGPT进行心理咨询时,用户需谨慎选择适当的方式与专业的心理咨询师进行交流,以获得更准确和有效的帮助。</p><span>2024-06-14</span></a></li><li><a href="https://www.kuazhi.com/post/552761.html#cmt557633504" title="詹安柏在柚子快报激活码778899分享:设计模式之桥接模式的评论"><img alt="詹安柏" src="//dn-qiniu-avatar.qbox.me/avatar/25ec3166324fc176fd6dfbed8bea98d1.png?s=60&d=mm&r=G" class="avatar" height="24" width="24"><p>以上内容没有明显的问题,但可以对一些表述进行优化,可以将桥接模式是很好理解的改为桥接模式的理解相对简单,将相信认真看了实例的同学应该都可以看懂改为如果认真学习了实例,大部分同学应该都能理解,在提到设计模式时,可以简要介绍一下各种设计模式的特点和应用场景,以帮助读者更好地理解和选择合适的设计模式。</p><span>2024-06-14</span></a></li></ul></div></aside> </div><script src="https://www.kuazhi.com/zb_users/theme/Jz52_tsqa/script/asid.js"></script> <div id="footer"> <p><p>夸智网——用心陪伴AI人工智能技术共同成长</p><p><a href="https://www.kuazhi.com/category-16.html" target="_blank">AI工具</a> <a href="https://www.kuazhi.com/category-17.html" target="_blank">AI教程</a> <a href="https://www.kuazhi.com/category-15.html" target="_blank">ChatGPT教程</a></p><a href="https://beian.miit.gov.cn/" target="_blank">浙ICP备15009899号-3</a><div style="display:none"><script charset="UTF-8" id="LA_COLLECT" src="//sdk.51.la/js-sdk-pro.min.js"></script><script>LA.init({id: "JsGU3vXOubP3rMz2",ck: "JsGU3vXOubP3rMz2"})</script></div><script charset="UTF-8" id="kuazhi_ai_click" src="https://kuazhi.com/kuazhi_ai_click.js"></script><div>本站部分信息来自互联网收集,仅供学习和交流,如有侵权、后门、不妥之处,请联系我们进行删除处理。</div></p> </div></div></div><a href="javascript:void(0);" class="to-top" id="to-top"><i class="jzicon-jzzhiding"></i><em>返回顶部</em></a><a class="jznight" href="javascript:switchNightMode()" target="_self"><i class="jzicon-yejian-b"></i><em>暗黑模式</em></a><script src="https://www.kuazhi.com/zb_users/theme/Jz52_tsqa/script/custom.js?v1.1.0"></script><script src="https://www.kuazhi.com/zb_users/theme/Jz52_tsqa/script/qrcode.min.js"></script><script src="https://www.kuazhi.com/zb_users/plugin/gbll_rollname/names.js"></script><script src="https://www.kuazhi.com/zb_users/plugin/gbll_rollname/roll.js"></script><script src="https://www.kuazhi.com/zb_users/theme/Jz52_tsqa/script/sticky-left.js"></script><script src="https://www.kuazhi.com/zb_users/theme/Jz52_tsqa/script/sidebar-right.js"></script><div id="ly_cache" data-id="713998622"></div></body></html><!--ly_cache 2024-06-14 15:37:21-->