『接口測試干貨』| Newman+Postman接口自動化測試完整過程

『接口測試干貨』| Newman+Postman接口自動化測試完整過程

  • 1 Newman簡介
  • 2 如何安裝Newman?
    • 2.1 安裝NodeJs
    • 2.2 安裝Newman
    • 2.2 解決Newman不是內部命令
  • 3 Newman使用
    • 3.1 Newman如何運行集合?
    • 3.2 如何查看幫助文檔?
    • 3.3 環境變量設置
    • 3.4 關于全局變量
    • 3.5 數據源文件
    • 3.6 如何導出變量
  • 4 測試報告
    • 4.1 newman-reporter-html安裝
    • 4.2 newman-reporter-html使用
    • 4.3 htmlextra安裝
    • 4.4 htmlextra使用
  • 5 關于postman使用

1 Newman簡介

  • NewmanPostman的一個擴展庫(NodeJs庫);
  • Newman+Postman可完成接口自動化測試工作;
  • Postman導出的JSON格式文件可通過Newman的命令行執行;
  • 因為Postman運行后只有概要結果,沒有像其他自動化測試框架那么完美漂亮的測試報告樣式,所以引入了Newman
  • Newman可快速完成集合的運行,構造自動化以及持續集成工作。

2 如何安裝Newman?

2.1 安裝NodeJs

  • 下載地址:NodeJs;
  • 下載后直接雙擊運行即可node-v20.10.0-x64.msi
    在這里插入圖片描述

2.2 安裝Newman

  • 直接命令行輸入以下命令即可:
npm install -g newman
C:\Windows\System32>npm install -g newman
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
npm WARN deprecated uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.added 118 packages, and audited 119 packages in 15s9 packages are looking for fundingrun `npm fund` for detailsfound 0 vulnerabilities
npm notice
npm notice New major version of npm available! 7.19.1 -> 10.2.4
npm notice Changelog: https://github.com/npm/cli/releases/tag/v10.2.4
npm notice Run npm install -g npm@10.2.4 to update!
  • 注意安裝時要以管理員身份打開,不然會報錯:
C:\Users\Administrator>npm install -g newman
npm ERR! code EPERM
npm ERR! syscall open
npm ERR! path C:\Program Files\nodejs\node_cache\_cacache\tmp\9c4058f4
npm ERR! errno EPERM
npm ERR! FetchError: Invalid response body while trying to fetch https://registry.npmjs.org/newman: EPERM: operation not permitted, open 'C:\Program Files\nodejs\node_cache\_cacache\tmp\9c4058f4'
npm ERR!     at C:\Program Files\nodejs\nod_global\node_modules\npm\node_modules\minipass-fetch\lib\body.js:162:15
npm ERR!     at async [nodeFromEdge] (C:\Program Files\nodejs\nod_global\node_modules\npm\node_modules\@npmcli\arborist\lib\arborist\build-ideal-tree.js:936:19)
npm ERR!     at async [buildDepStep] (C:\Program Files\nodejs\nod_global\node_modules\npm\node_modules\@npmcli\arborist\lib\arborist\build-ideal-tree.js:882:11)
npm ERR!     at async Arborist.buildIdealTree (C:\Program Files\nodejs\nod_global\node_modules\npm\node_modules\@npmcli\arborist\lib\arborist\build-ideal-tree.js:218:7)
npm ERR!     at async Arborist.reify (C:\Program Files\nodejs\nod_global\node_modules\npm\node_modules\@npmcli\arborist\lib\arborist\reify.js:134:5)
npm ERR!     at async Install.install (C:\Program Files\nodejs\nod_
  • 驗證Newman是否安裝成功:
'newman' 不是內部或外部命令,也不是可運行的程序
或批處理文件。
  • 問題排查:我們已經安裝了node.js了,也已經安裝了newman,其他都ok了。但還是不行查看node版本也是好的;
    在這里插入圖片描述

2.2 解決Newman不是內部命令

  • 根據上邊的提示,我們已經做好了很多工作,但是還是不行;
  • 這里需要配置node.js的一些環境變;
  • node.js的安裝目錄下新建兩個文件夾如下node_globalnode_cache
    在這里插入圖片描述
  • 打開系統環境變量,新增NODE_PATH變量:
NODE_PATH
D:\nodejs\node_modules

在這里插入圖片描述

  • 在系統環境變量的path新增:%NODE_PATH%
    在這里插入圖片描述
  • 打開用戶環境變量,修改path中的npm路徑為:D:\nodejs\node_global
    在這里插入圖片描述
    在這里插入圖片描述
  • 重啟電腦、重啟電腦、重啟電腦(重要的事情說三遍)。
  • 驗證newman是否安裝成功:
newman -h
newman --version

在這里插入圖片描述

3 Newman使用

3.1 Newman如何運行集合?

  • postman中將腳本導出,集合-右鍵-三個點-【Export】:
    在這里插入圖片描述
  • 導出為JSON格式文件即可:
    在這里插入圖片描述
  • 我們導出的文件為:test.postman_collection.json
  • 直接命令行執行以下命令運行腳本:
newman run test.postman_collection.json
  • 運行結果如下:
C:\Users\Administrator\Desktop>newman run test.postman_collection.json
newmantest→ zentaoPOST http://127.0.0.1/zentao/api.php/v1/tokens [201 Created, 1.29kB, 1997ms]√  狀態碼為201┌─────────────────────────┬─────────────────────┬─────────────────────┐
│                         │            executed │              failed │
├─────────────────────────┼─────────────────────┼─────────────────────┤
│              iterations │                   10 │
├─────────────────────────┼─────────────────────┼─────────────────────┤
│                requests │                   10 │
├─────────────────────────┼─────────────────────┼─────────────────────┤
│            test-scripts │                   10 │
├─────────────────────────┼─────────────────────┼─────────────────────┤
│      prerequest-scripts │                   00 │
├─────────────────────────┼─────────────────────┼─────────────────────┤
│              assertions │                   10 │
├─────────────────────────┴─────────────────────┴─────────────────────┤
│ total run duration: 2.1s                                            │
├─────────────────────────────────────────────────────────────────────┤
│ total data received: 44B (approx)                                   │
├─────────────────────────────────────────────────────────────────────┤
│ average response time: 1997ms [min: 1997ms, max: 1997ms, s.d.: 0μs] │
└─────────────────────────────────────────────────────────────────────┘

在這里插入圖片描述

3.2 如何查看幫助文檔?

  • 使用以下命令即可:
newman -h
或
newman --help
C:\Users\Administrator\Desktop>newman -h
Usage: newman [options] [command]Options:-v, --version               output the version number-h, --help                  display help for commandCommands:run [options] <collection>  Initiate a Postman Collection run from a given URL or pathTo get available options for a command:newman <command> -hC:\Users\Administrator\Desktop>newman --help
Usage: newman [options] [command]Options:-v, --version               output the version number-h, --help                  display help for commandCommands:run [options] <collection>  Initiate a Postman Collection run from a given URL or pathTo get available options for a command:newman <command> -h

3.3 環境變量設置

  • 腳本文件和環境變量是兩個文件;
  • 所以運行腳本的時候如果有環境變量,那么直接加-e--environment即可:
newman run 腳本文件 -e 環境變量文件

3.4 關于全局變量

  • 這個和環境變量類似,如果有全局變量,使用-g--globals即可;
newman run 腳本文件 -g 全局變量文件

3.5 數據源文件

  • Postman中可以設置迭代次數和數據源文件,而在Newman中使用的話,需要加-d--iteration-data參數指定數據源的路徑:
newman run 腳本文件 -g 全局變量文件 -d 數據源文件
  • 迭代次數通過-n--iteration-count來確定。

3.6 如何導出變量

  • 直接在命令行加如下參數即可:
--export-environment
--export-globals
--export-collection

4 測試報告

  • Newman支持CLI、JSON、HTML、JUNIT等等;
  • 本文主要說下HTML格式的報告使用。

4.1 newman-reporter-html安裝

  • newman-reporter-html插件安裝:
npm install -g newman-reporter-html

在這里插入圖片描述

4.2 newman-reporter-html使用

  • 使用方法:
命令說明
-r,json,junit表示指定生成HTML、JSON、XML格式形式的測試報告
--reporter-json-export xxx.json生成JSON格式的測試報告
--reporter-junit-export xxx.xml生成XML格式的測試報告
--reporter-html-export xxx.html生成HTML格式的測試報告
  • 生成的測試報告默認保存到當前目錄下,如果報告名稱為目錄名,則保存到指定目錄下;
  • 比如HTML報告:
newman run test.postman_collection.json \
-r html --reporter-html-export html_report.html

在這里插入圖片描述

  • 比如XML格式報告:
newman run test.postman_collection.json \
-r junit --reporter-junit-export xml_report.xml

在這里插入圖片描述

  • 比如JSON格式報告:
newman run test.postman_collection.json \
-r json --reporter-json-export json_report.json
{"collection": {"_": {"postman_id": "a1ee2193-7e02-4c50-892f-1e4d706a1132"},"item": [{"id": "393ea4b7-bfcf-4e3e-853d-e05a263435bf","name": "zentao","request": {"description": {"content": "禪道系統接口測試","type": "text/plain"},"url": {"protocol": "http","path": ["zentao","api.php","v1","tokens"],"host": ["127","0","0","1"],"query": [],"variable": []},"method": "POST","body": {"mode": "raw","raw": "{\"account\": \"admin\", \"password\": \"ZenTao123456\"}","options": {"raw": {"language": "json"}}}},"response": [],"event": [{"listen": "test","script": {"id": "63fb0da7-27ef-4569-87c6-81697169acf5","type": "text/javascript","exec": ["pm.test(\r","    \"狀態碼為201\",function(){\r","        pm.response.to.have.status(201);\r","    }\r",");"],"_lastExecutionId": "9d83ab07-5d8c-4170-bb4f-898dbd965e57"}}]}],"event": [],"variable": [],"info": {"_postman_id": "a1ee2193-7e02-4c50-892f-1e4d706a1132","name": "test","schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"}},"environment": {"id": "a4b8954c-a10e-4b54-80d0-bb003c56953e","values": []},"globals": {"id": "a084d77b-cbf5-4498-9770-200d6e0a4168","values": []},"run": {"stats": {"iterations": {"total": 1,"pending": 0,"failed": 0},"items": {"total": 1,"pending": 0,"failed": 0},"scripts": {"total": 1,"pending": 0,"failed": 0},"prerequests": {"total": 1,"pending": 0,"failed": 0},"requests": {"total": 1,"pending": 0,"failed": 0},"tests": {"total": 1,"pending": 0,"failed": 0},"assertions": {"total": 1,"pending": 0,"failed": 0},"testScripts": {"total": 1,"pending": 0,"failed": 0},"prerequestScripts": {"total": 0,"pending": 0,"failed": 0}},"timings": {"responseAverage": 154,"responseMin": 154,"responseMax": 154,"responseSd": 0,"dnsAverage": 0,"dnsMin": 0,"dnsMax": 0,"dnsSd": 0,"firstByteAverage": 0,"firstByteMin": 0,"firstByteMax": 0,"firstByteSd": 0,"started": 1700804595902,"completed": 1700804596169},"executions": [{"cursor": {"position": 0,"iteration": 0,"length": 1,"cycles": 1,"empty": false,"eof": false,"bof": true,"cr": false,"ref": "1d6d4e14-53d2-4ab6-8e78-87c67bad8bc9","httpRequestId": "b5949fe3-d241-4020-a10c-b4adcbef9bb1"},"item": {"id": "393ea4b7-bfcf-4e3e-853d-e05a263435bf","name": "zentao","request": {"description": {"content": "禪道系統接口測試","type": "text/plain"},"url": {"protocol": "http","path": ["zentao","api.php","v1","tokens"],"host": ["127","0","0","1"],"query": [],"variable": []},"method": "POST","body": {"mode": "raw","raw": "{\"account\": \"admin\", \"password\": \"ZenTao123456\"}","options": {"raw": {"language": "json"}}}},"response": [],"event": [{"listen": "test","script": {"id": "63fb0da7-27ef-4569-87c6-81697169acf5","type": "text/javascript","exec": ["pm.test(\r","    \"狀態碼為201\",function(){\r","        pm.response.to.have.status(201);\r","    }\r",");"],"_lastExecutionId": "9d83ab07-5d8c-4170-bb4f-898dbd965e57"}}]},"request": {"description": {"content": "禪道系統接口測試","type": "text/plain"},"url": {"protocol": "http","path": ["zentao","api.php","v1","tokens"],"host": ["127","0","0","1"],"query": [],"variable": []},"header": [{"key": "Content-Type","value": "application/json","system": true},{"key": "User-Agent","value": "PostmanRuntime/7.33.0","system": true},{"key": "Accept","value": "*/*","system": true},{"key": "Cache-Control","value": "no-cache","system": true},{"key": "Postman-Token","value": "4dd31771-a07b-42e8-b78a-ac244c4dca6c","system": true},{"key": "Host","value": "127.0.0.1","system": true},{"key": "Accept-Encoding","value": "gzip, deflate, br","system": true},{"key": "Connection","value": "keep-alive","system": true},{"key": "Content-Length","value": "48","system": true}],"method": "POST","body": {"mode": "raw","raw": "{\"account\": \"admin\", \"password\": \"ZenTao123456\"}","options": {"raw": {"language": "json"}}}},"response": {"id": "2a26af66-ad21-42d2-8b7a-b89cd7339a47","status": "Created","code": 201,"header": [{"key": "Date","value": "Fri, 24 Nov 2023 05:43:16 GMT"},{"key": "Server","value": "Apache"},{"key": "Set-Cookie","value": "zentaosid=9f0dab6ebbe1e65c99a8abb3c351d89a; path=/zentao/; HttpOnly"},{"key": "Set-Cookie","value": "lang=zh-cn; expires=Sun, 24-Dec-2023 05:43:16 GMT; Max-Age=2592000; path=/zentao/"},{"key": "Set-Cookie","value": "device=desktop; expires=Sun, 24-Dec-2023 05:43:16 GMT; Max-Age=2592000; path=/zentao/; HttpOnly"},{"key": "Set-Cookie","value": "theme=default; expires=Sun, 24-Dec-2023 05:43:16 GMT; Max-Age=2592000; path=/zentao/"},{"key": "Expires","value": "Thu, 19 Nov 1981 08:52:00 GMT"},{"key": "Cache-Control","value": "private"},{"key": "Pragma","value": "no-cache"},{"key": "X-Content-Type-Options","value": "nosniff"},{"key": "X-XSS-Protection","value": "1; mode=block"},{"key": "Strict-Transport-Security","value": "max-age=3600; includeSubDomains"},{"key": "Referrer-Policy","value": "no-referrer-when-downgrade"},{"key": "X-Permitted-Cross-Domain-Policies","value": "master-only"},{"key": "X-Download-Options","value": "noopen"},{"key": "Content-Security-Policy","value": "form-action 'self';connect-src 'self';"},{"key": "X-Frame-Options","value": "SAMEORIGIN"},{"key": "Access-Control-Allow-Origin","value": "*"},{"key": "Access-Control-Allow-Credentials","value": "true"},{"key": "Access-Control-Allow-Headers","value": "Origin,X-Requested-With,Content-Type,Accept,Authorization,Token,Referer,User-Agent"},{"key": "Access-Control-Allow-Methods","value": "GET,POST,PUT,DELETE,OPTIONS,PATCH"},{"key": "Content-Length","value": "44"},{"key": "Keep-Alive","value": "timeout=10, max=100"},{"key": "Connection","value": "Keep-Alive"},{"key": "Content-Type","value": "application/json"}],"stream": {"type": "Buffer","data": [123,34,116,111,107,101,110,34,58,34,57,102,48,100,97,98,54,101,98,98,101,49,101,54,53,99,57,57,97,56,97,98,98,51,99,51,53,49,100,56,57,97,34,125]},"cookie": [],"responseTime": 154,"responseSize": 44},"id": "393ea4b7-bfcf-4e3e-853d-e05a263435bf","assertions": [{"assertion": "狀態碼為201","skipped": false}]}],"transfers": {"responseTotal": 44},"failures": [],"error": null}
}
  • 以下是生成的幾個報告:
    在這里插入圖片描述

4.3 htmlextra安裝

  • htmlextra主要實現比較高級的測試報告,需要進行安裝:
npm install -g newman-reporter-htmlextra

在這里插入圖片描述

4.4 htmlextra使用

  • 使用方法和newman-reporter-html基本一樣;
  • 使用命令方法:
newman run test.postman_collection.json -r \
htmlextra --reporter-html-export html_report.html
  • 執行命令后會在當前目錄或者指定目錄生成一個newman文件夾,文件夾中保存著生成的文報告信息;
  • 測試報告樣式如下:
    在這里插入圖片描述

5 關于postman使用

  • 這個之前的文章已經介紹了,直接去瀏覽即可,這里不再贅述;
  • 大概思路就是使用postman生成接口數據,導出來后使用Newman運行和生成測試報告。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/166729.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/166729.shtml
英文地址,請注明出處:http://en.pswp.cn/news/166729.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

微信小程序制作

如果你也想搭建一個小程序&#xff0c;但不知道如何入手&#xff0c;那么今天我就教你如何使用第三方制作平臺&#xff0c;在短短三十分鐘內搭建一個小程序。 一、登錄小程序制作平臺 首先&#xff0c;登錄到小程序制作平臺的官方網站或應用程序&#xff0c;進入后臺管理系統。…

【Oracle OCP考試】1z0-082(4)

1.Which two statements are true about the PMON background process? A. It rolls back transactions when a process fails&#xff08;當進程失敗時&#xff0c;它回滾事務&#xff09; B. It registers database services with all local and remote listeners known to…

文章解讀與仿真程序復現思路——電網技術 EI\CSCD\北大核心《考慮5G基站儲能可調度容量的有源配電網協同優化調度方法》

這篇文章的標題涉及到以下關鍵概念&#xff1a; 5G基站&#xff1a; 提到了5G基站&#xff0c;這表明文章的焦點可能是與第五代移動通信技術相關的內容。5G技術對于提高通信速度、降低延遲以及支持大規模連接等方面有顯著的改進&#xff0c;因此對于基站的電力需求和供應可能存…

2023年ESG投資研究報告

第一章 ESG投資概況 1.1 定義 ESG投資&#xff0c;亦稱負責任投資&#xff0c;是一種融合環境&#xff08;Environment&#xff09;、社會&#xff08;Social&#xff09;和治理&#xff08;Governance&#xff09;考量的投資方法&#xff0c;旨在通過綜合這些因素來優化投資…

美國汽車零部件巨頭 AutoZone 遭遇網絡攻擊

Security Affairs 網站披露&#xff0c;美國汽車配件零售商巨頭 AutoZone 稱其成為了 Clop MOVEit 文件傳輸網絡攻擊的受害者&#xff0c;導致大量數據泄露。 AutoZone 是美國最大的汽車零配件售后市場經銷商之一&#xff0c;在美國、墨西哥、波多黎各、巴西和美屬維爾京群島經…

算法-技巧-簡單-只出現一次的數字、多數元素

記錄一下算法題的學習10 只出現一次的數字 leetcode題目&#xff1a;給你一個 非空 整數數組 nums &#xff0c;除了某個元素只出現一次以外&#xff0c;其余每個元素均出現兩次。找出那個只出現了一次的元素。你必須設計并實現線性時間復雜度的算法來解決此問題&#xff0c;且…

「Whale 帷幄」連續入選科技榜單,AGI 沖擊波正在加速行業洗牌

以 AGI 為底座&#xff0c;品牌 MarTech 正在經歷一場前所未有的深度變革。 近日&#xff0c;彎弓研究院發布「中國 MarTech 500 強榜單」&#xff0c;以 2023 中國營銷技術&#xff08;MarTech&#xff09;生態為研究對象&#xff0c;洞察行業現象與未來趨勢。作為品牌數字化…

AMEYA360:蔡司新能源汽車解決方案驅動產業未來

電動化正在重塑中國汽車工業。自中國汽車工業開始發展以來&#xff0c;在電動化和智能化的浪潮推動下&#xff0c;汽車行業從未面臨著如此巨大的變革。得益于中國汽車產業尤其是新能源車過去十余年的激流勇進&#xff0c;消費者對新能源汽車的接受度也在發生轉變。新能源汽車市…

2016年全國碩士研究生入學統一考試管理類專業學位聯考英語(二)試題

Section IUse of English Directions: Read the following text.Choose the best word(s) for each numbered blank and mark A&#xff0c;B,Cor D on the ANSWER SHEET.(10 points)   Happy people work differently.They’re more productive&#xff0c;more creative&am…

前后端性能優化實踐(含Java代碼部分、數據庫部分、React前端部分)

最近的一個大屏報表統計的接口查詢速度很慢&#xff0c;耗時近一分鐘左右&#xff0c;數據量級只是700萬左右&#xff0c;但很慢&#xff0c;最后優化到4秒左右&#xff0c;客戶還能接受&#xff0c;但其實還可以在優化&#xff0c;先這樣吧&#xff0c;簡單記錄下。這次主要優…

App Inventor 2 文本轉數字

App Inventor 2 是弱語言類型&#xff0c;文本和數字之間不用刻意去轉換&#xff0c;之間賦值就可以了。文本賦值給數字變量如下&#xff1a; 運行結果&#xff1a;124 注意&#xff1a;數字變量初始化的時候要給一個數字的初始值&#xff0c;表明它是數字。 如果文本中含有非…

java與c++中的分支語句switch的不同

java中的switch后可用字符串,而C只能用字符和數字 switch(suffix){case "js":contentType"text/javascript";break;case "css":contentType"text/css";break;}c switch (x){case 0:case 1:case 2:rth 3;break;case 3:case 4:case 5:r…

系列三、事務

一、事務 1.1、概述 事務是數據庫操作的基本單元&#xff0c;它是指邏輯上的一組操作&#xff0c;要么都成功&#xff0c;要么都失敗。典型場景&#xff1a;轉賬&#xff0c;例如Jack給Rose轉賬1000元&#xff0c;轉賬成功&#xff1a;Jack賬戶的余額少1000元&#xff0c;Rose…

關于進制的轉化

二進制轉十進制&#xff1a; &#x1f530; 方法一&#xff1a;二進制轉十進制&#xff0c;用各數的碼位與位權的乘積之和&#xff0c;說白了就是用從右到左的每個數去乘以2的冪次方&#xff08;最右邊是0&#xff09;&#xff0c;然后就所有的數相加。 補充&#xff1a;位權是…

<藍橋杯軟件賽>零基礎備賽20周--第7周--棧和二叉樹

報名明年4月藍橋杯軟件賽的同學們&#xff0c;如果你是大一零基礎&#xff0c;目前懵懂中&#xff0c;不知該怎么辦&#xff0c;可以看看本博客系列&#xff1a;備賽20周合集 20周的完整安排請點擊&#xff1a;20周計劃 每周發1個博客&#xff0c;共20周&#xff08;讀者可以按…

VMware共享文件夾不能放mysql的數據

概要 使用VMware搭建了一個虛擬機&#xff0c;準備做數據庫服務器。服務器是linux系統&#xff0c;安裝了mysql和redis。為了數據安全&#xff0c;準備將mysql的數據文件放到共享文件夾中&#xff0c;嘗試多次后都沒成功。問題可能是共享文件夾中的文件的擁有者都是root&#…

MFC所有控件介紹及基本使用

一、前言 本篇文檔介紹了MFC控件的基本使用&#xff0c;同時提供了關于MFC控件使用的工程代碼&#xff0c;程序界面如下圖&#xff0c;有興趣的可以到文檔最后的鏈接處進行下載。 二、控件介紹 2.1 Button &#xff08;按鈕&#xff09; 2.2 CheckBox&#xff08;復選框&am…

【jvm】虛擬機之堆

目錄 一、堆的核心概述二、堆的內存細分&#xff08;按分代收集理論設計&#xff09;2.1 java7及以前2.2 java8及以后 三、堆內存大小3.1 說明3.2 參數設置3.3 默認大小3.4 手動設置3.5 jps3.6 jstat3.7 OutOfMemory舉例 四、年輕代與老年代4.1 說明 五、對象分配過程5.1 說明5…

電腦鍵盤推薦

一、鍵盤分類 &#xff08;1&#xff09;鍵位個數 目前有75&#xff0c;84&#xff0c;87&#xff0c;98&#xff0c;104&#xff0c;108的。 &#xff08;2&#xff09;薄膜鍵盤和機械鍵盤 薄膜鍵盤就是大多數辦公室常見的鍵盤&#xff0c;主要打一個便宜&#xff0c;耐造…

Python武器庫開發-前端篇之Html基礎語法(二十九)

前端篇之Html基礎語法(二十九) HTML 元素 HTML元素指的是HTML文檔中的標簽和內容。標簽用于定義元素的類型&#xff0c;而內容則是元素所包含的內容。HTML元素由開始標簽和結束標簽組成&#xff0c;也可以是自閉合標簽。 例如&#xff0c;下面是一個叫做<p>的HTML元素…