国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁(yè) 後端開發(fā) Python教學(xué) Part 使用 Cursor 和 Claude 與 Playwright 建立自動(dòng)化測(cè)試

Part 使用 Cursor 和 Claude 與 Playwright 建立自動(dòng)化測(cè)試

Nov 06, 2024 am 01:54 AM

第 1 部分連結(jié)

第 4 部分

這是該專案的 Github 原始碼儲(chǔ)存庫(kù):https://github.com/joegiglio/cursor2-kb

已經(jīng)有一段時(shí)間了......

上次我們交談時(shí),遊標(biāo)似乎崩潰了,檔案結(jié)構(gòu)的索引已損壞。 經(jīng)過 23 天的修復(fù)後,我很高興地報(bào)告,問題似乎終於解決了! 使用者介面仍然很奇怪,並且在一段時(shí)間後似乎會(huì)因某種類型的記憶體洩漏而變慢,這可以透過重新啟動(dòng)來修復(fù)。 但至少現(xiàn)在它正在對(duì)正確的文件進(jìn)行更改,並且我沒有面臨神秘?fù)p壞的文件索引。

在等待修復(fù)時(shí),我注意到許多 Cursor 用戶抱怨 Cursor 和/或 Claude 的不穩(wěn)定。 是的,它有時(shí)會(huì)起作用,而且當(dāng)它起作用時(shí)令人印象深刻,但它是一個(gè)由移動(dòng)部件組成的黑盒子,在幕後不斷更新並且結(jié)果不一致。

我決定把幫助臺(tái)專案放在一邊,想看看是否可以建立一個(gè)知識(shí)庫(kù)應(yīng)用程式。 這可能會(huì)更簡(jiǎn)單一些 - 不需要即時(shí)更新或複雜的整合點(diǎn)。

我使用了我最熟悉的相同技術(shù)堆疊 - Python、Flask 和 Bootstrap 以及 SQLite 資料庫(kù)。 一切都進(jìn)展順利,直到我遇到了「資料庫(kù)遷移」的障礙。 與前一章類似,它產(chǎn)生了 SQLite 不喜歡的約束程式碼,並引發(fā)了錯(cuò)誤:

Exception during DB migration:
 raise ValueError("Constraint must have a name")
ValueError: Constraint must have a name

這對(duì)克勞德來說應(yīng)該很容易修復(fù),但它開始螺旋式上升,我最終從頭開始重建我的資料庫(kù)。 我將這歸咎於我在調(diào)試flask-migrate方面缺乏經(jīng)驗(yàn),但克勞德無法在不擦除資料庫(kù)並重新開始的情況下清理混亂。

Part  Using Cursor and Claude to Create Automated Tests with Playwright

一切安頓下來後,我最終得到了一個(gè)功能齊全的知識(shí)庫(kù)系統(tǒng),以及管理面板、暗/亮模式、搜尋(僅使用 SQL 查詢)和測(cè)試資料產(chǎn)生器。 它是用 Quill 建構(gòu)的,Quill 是一個(gè)開源文字編輯器,支援格式和圖像。

Part  Using Cursor and Claude to Create Automated Tests with Playwright

Part  Using Cursor and Claude to Create Automated Tests with Playwright

我說「主要是功能性的」是因?yàn)槲夜室獠蛔屔矸蒡?yàn)證或多租戶變得複雜。 我透過基本的 Flask 路由和 CRUD 操作使架構(gòu)保持簡(jiǎn)單。 還沒有 API…也許我會(huì)在第 2 階段重新審視這些功能。

當(dāng)我添加功能時(shí),我一直注意到 Claude 會(huì)修復(fù)一件事,但會(huì)破壞另一件事 - 就像真正的開發(fā)人員一樣。 此外,CSS 和 JavaScript 散佈在程式碼中。 有時(shí),新增文章可行,但編輯不起作用,反之亦然。 有時(shí)文章格式化程式碼會(huì)到處出現(xiàn),我必須請(qǐng)克勞德清理它。 它正在變得打地鼠。

這個(gè)專案變得足夠複雜,需要測(cè)試自動(dòng)化,這在上一章中進(jìn)行了簡(jiǎn)要討論。 在大多數(shù)公司中,量化寬鬆的預(yù)算很少,而且大多數(shù)開發(fā)人員討厭編寫測(cè)試,所以也許人工智慧可以提供幫助?

我在 Selenium 和 Cucumber 方面擁有豐富的經(jīng)驗(yàn),但已經(jīng)有一段時(shí)間了。 Playwright 一直受到關(guān)注,據(jù)說對(duì)定位器和重試有更好的處理能力,所以我要求 Claude 創(chuàng)建一些 Playwright 測(cè)試。 VS-Code Playwright 擴(kuò)充功能似乎都假設(shè)您使用的是 Javascript,而且它們沒有對(duì) Python 的直接支持,因此我需要像動(dòng)物一樣從終端機(jī)運(yùn)行測(cè)試。

Part  Using Cursor and Claude to Create Automated Tests with Playwright

[提示]

我想使用 Playwright 和 Python 在這個(gè)專案中新增端對(duì)端瀏覽器測(cè)試。 我希望測(cè)試使用固定裝置來播種必要的數(shù)據(jù),然後在每次測(cè)試運(yùn)行結(jié)束時(shí)刪除數(shù)據(jù)。 測(cè)試需要自行清理,並且不要留下測(cè)試資料。 如果您可以將其配置為在執(zhí)行測(cè)試時(shí)設(shè)定測(cè)試資料庫(kù),那就更好了。 請(qǐng)讓我知道要安裝哪些函式庫(kù),透過查看產(chǎn)品的主要功能為前 10 個(gè)場(chǎng)景建立測(cè)試,並讓我知道如何從 Cursor 中執(zhí)行這些測(cè)試。

[/提示]

第一次嘗試非常好,提供了有關(guān)如何安裝必要庫(kù)的說明。 測(cè)試的文件結(jié)構(gòu)似乎也很準(zhǔn)確,甚至透過更改視口大小添加了響應(yīng)能力測(cè)試。 不錯(cuò)…但我不喜歡它產(chǎn)生的最初一組測(cè)試,所以我要求它進(jìn)一步完善:

[提示]

該產(chǎn)品尚未實(shí)現(xiàn)身份驗(yàn)證。 請(qǐng)不要為這些功能建立測(cè)試。 相反,專注於管理功能,例如建立、編輯和刪除主題;新增、編輯和刪除文章。 此外,也要專注於最終用戶功能,例如搜尋和查看文章。 查看程式碼找出產(chǎn)品的前 10 個(gè)功能並為它們建立測(cè)試。

[/提示]

下一批測(cè)試看起來好一點(diǎn),但仍然沒有管理功能。

[提示]

大多數(shù)測(cè)試看起來都不錯(cuò),但我在 @admin.html 檔案中沒有看到任何管理功能。 我們需要有新增、編輯、刪除主題和新增、編輯、刪除文章的測(cè)試。

[/提示]

現(xiàn)在看起來它是正確的並創(chuàng)建了程式碼來測(cè)試以下應(yīng)用程式場(chǎng)景:

Part  Using Cursor and Claude to Create Automated Tests with Playwright

Part  Using Cursor and Claude to Create Automated Tests with Playwright

這些看起來都是很好的起點(diǎn)。 現(xiàn)在讓我們來看看克勞德的執(zhí)行指令是否正確。 嗯,不幸的是沒有…

[提示]

我按照您的說明執(zhí)行測(cè)試,但遇到了一些問題。
我打開一個(gè)新終端並運(yùn)行命令“FLASK_ENV=testingflask run”,然後運(yùn)行“pytesttests/e2e/”。 我發(fā)現(xiàn)以下問題:

  1. 當(dāng)我導(dǎo)航到主頁(yè)時(shí),我看到的數(shù)據(jù)與之前看到的數(shù)據(jù)相同。 好像沒有切換到測(cè)試資料庫(kù)。
  2. 異常:載入conftest '/Users/joe/cursor2-kb/tests/e2e/conftest.py'時(shí)出現(xiàn)匯入錯(cuò)誤。 test/e2e/conftest.py:12:在 from models import 主題、文章 ModuleNotFoundError:沒有名為「models」的模組

[/提示]

Claude 創(chuàng)建了一個(gè) models.py 文件,複製了 app.py 文件中的程式碼,我質(zhì)疑為什麼......

此應(yīng)用程式的初始程式碼全部在 app.py 檔案中完成,包括模型。 這工作正常,但可能會(huì)給您留下一個(gè)笨拙的單文件應(yīng)用程式。 最佳實(shí)踐是將模型和路由與配置分開,這就是克勞德帶我去的地方,儘管它花了很長(zhǎng)的時(shí)間:

[提示]

您提出的 models.py 檔案看起來像是複製 app.py 中的程式碼。 使用 app.py 中的模型是否更有意義?

[/提示]

[回覆]

實(shí)際上,情況正好相反 - 我們應(yīng)該將模型從 app.py 移到 models.py 中,以遵循關(guān)注點(diǎn)分離原則。這是 Flask 應(yīng)用程式中的常見模式,其中:
app.py 處理應(yīng)用程式配置和初始化
models.py 包含所有資料庫(kù)模型
路線通常位於單獨(dú)的藍(lán)圖檔案

[/回覆]

很公平。 就這樣吧!

嗯,沒那麼快。 仔細(xì)檢查後...

[提示]

我喜歡你分離 models.py 檔案的地方,但你也從 app.py 檔案中刪除了所有路由。 我在任何其他文件中都沒有看到它們。 他們就這樣走了…

[/提示]

現(xiàn)在 Claude 將所有路線從 app.py 檔案中取出,並將它們移到一個(gè)單獨(dú)的藍(lán)圖檔案中。 它正在進(jìn)行太多的架構(gòu)更改,我希望它能夠恢復(fù)……當(dāng)心那些想要重寫一切的出色的新開發(fā)人員! 儘管建議的更改被認(rèn)為是專業(yè) Flask 程式碼庫(kù)的最佳實(shí)踐,但在測(cè)試到位之前我不會(huì)相信這些更改,以便我們可以驗(yàn)證它們是否正常運(yùn)作。

[提示]

我知道使用藍(lán)圖是專業(yè)級(jí) Flask 程式碼的首選方法。 然而,我現(xiàn)在不太願(yuàn)意進(jìn)行這樣的重構(gòu)。我首先嘗試進(jìn)行端到端測(cè)試。 然後我們可以看一下項(xiàng)目結(jié)構(gòu)。 請(qǐng)不要將路由移出 app.py 檔案。

[/提示]

Part  Using Cursor and Claude to Create Automated Tests with Playwright

遊標(biāo)嘗試恢復(fù),但合併 UI 是一片綠色和紅色的海洋,我對(duì)這項(xiàng)變更感到不舒服。 新策略:讓我們進(jìn)行一些簡(jiǎn)單的劇作家測(cè)試,然後逐步改進(jìn)它們。 也許這樣會(huì)更好…

我隱藏了建議的測(cè)試列表,因?yàn)槲蚁矚g它的發(fā)展方向,然後關(guān)閉 Cursor Composer 視窗並啟動(dòng)一個(gè)新的 Composer,我相信它會(huì)刪除以前的 Composer 的所有內(nèi)容。

讓我們從一個(gè)更簡(jiǎn)單的起點(diǎn)再試一次。 無論如何,迭代開發(fā)通常是最好的。

[提示]

我想使用 Playwright 和 Python 在這個(gè)專案中新增端對(duì)端瀏覽器測(cè)試。 請(qǐng)讓我知道要安裝哪些函式庫(kù),透過查看產(chǎn)品的主要功能為前 10 個(gè)場(chǎng)景建立測(cè)試,並讓我知道如何從 Cursor 中執(zhí)行這些測(cè)試。

[/提示]

這次我們遇到了類似的問題,克勞德想要測(cè)試尚不存在的功能。 是時(shí)候罵克勞德了!

[提示]

我看到您正在為身份驗(yàn)證功能建立測(cè)試。 雖然我們有一個(gè)登入頁(yè)面,但它只是一個(gè)佔(zhàn)位符,並沒有實(shí)際的功能。 它甚至沒有允許任何人登入的欄位。 請(qǐng)?jiān)俅螜z查項(xiàng)目代碼並提出 Playwright 的前 10 個(gè)測(cè)試場(chǎng)景。

[/提示]

這導(dǎo)致 Claude 道歉並圍繞主頁(yè)上的搜尋功能創(chuàng)建了一堆測(cè)試場(chǎng)景。 我希望不要手動(dòng)提供我想要的測(cè)試,而是希望它透過查看程式碼來找到功能。 但運(yùn)氣不好,所以我回去了:

[提示]

這看起來更好,但過於專注於搜尋。 我們需要對(duì)以下功能進(jìn)行測(cè)試:搜尋、建立主題、編輯主題、刪除主題、建立文章、編輯文章、刪除文章、查看文章以及一些響應(yīng)式測(cè)試,以確保一切在不同的螢?zāi)唤馕龆认驴雌饋矶颊!?

[/提示]

我們已經(jīng)開始螺旋式上升......它為更多測(cè)試創(chuàng)建了基本框架,但它對(duì)將存在的數(shù)據(jù)做出了太多假設(shè)。 不要做任何假設(shè)。 這就是為什麼最好有一個(gè)預(yù)先播種的測(cè)試資料庫(kù),但我們最終會(huì)努力實(shí)現(xiàn)這一目標(biāo)。 現(xiàn)在…

[提示]

其中一些測(cè)試假設(shè)某些連結(jié)有效且某些內(nèi)容存在。 如果刪除文章或主題,情況可能並非如此。 請(qǐng)透過建立所需的資料來使每個(gè)測(cè)試自包含,然後在測(cè)試完成時(shí)將其刪除。

[/提示]

所以現(xiàn)在克勞德又回來創(chuàng)造賽程了! 我想如果你想做正確的事,就沒有辦法解決這個(gè)問題......

另一個(gè)問題是使用「測(cè)試主題」和「測(cè)試文章」等測(cè)試字串,如果我們執(zhí)行平行測(cè)試(這是加速執(zhí)行的常見方法),它們可能會(huì)發(fā)生衝突。 我希望測(cè)試使用隨機(jī)數(shù)據(jù),因此我提示:

[提示]

主題名稱、文章名稱和文章內(nèi)容請(qǐng)使用隨機(jī)資料。 新增外語(yǔ)字元測(cè)試也是一個(gè)好主意,以確保它們?cè)跒g覽和搜尋過程中顯示正常。

[/提示]

Part  Using Cursor and Claude to Create Automated Tests with Playwright

我有一種感覺,我們將需要更多的調(diào)整,但這看起來是一個(gè)非常合理的開始。 克勞德回傳以下內(nèi)容:

進(jìn)行了以下更改:
使用Faker產(chǎn)生多種語(yǔ)言的隨機(jī)資料
新增針對(duì)多語(yǔ)言內(nèi)容的特定測(cè)驗(yàn)
驗(yàn)證各種字元集的正確顯示
使用非拉丁字元測(cè)試搜尋功能
驗(yàn)證顯示中沒有字元編碼問題
測(cè)試多種語(yǔ)言的內(nèi)容創(chuàng)建
現(xiàn)在測(cè)試驗(yàn)證您的應(yīng)用程式是否已正確處理:
日文 (日本文)
中文 (中文)
韓文 (???)
俄語(yǔ) (Русский)
以及常規(guī)英文內(nèi)容
每個(gè)測(cè)試都會(huì)創(chuàng)建自己的隨機(jī)資料並自行清理,使測(cè)試更加可靠和獨(dú)立。

這些是創(chuàng)建的測(cè)試:

Part  Using Cursor and Claude to Create Automated Tests with Playwright

Part  Using Cursor and Claude to Create Automated Tests with Playwright

現(xiàn)在運(yùn)行它們。 首先,我需要安裝 Claude 指示我做的 faker 庫(kù)......

我獲得了一堆不同的標(biāo)誌和選項(xiàng)來運(yùn)行測(cè)試。 根據(jù)先前的經(jīng)驗(yàn),所有這些說明看起來都是正確的,但我將使用Claude 創(chuàng)建的pytest.ini 文件,並傳遞一些用於詳細(xì)輸出、螢?zāi)唤貓D和減慢測(cè)試執(zhí)行的標(biāo)誌,以便我可以遵循沿著視覺…

Part  Using Cursor and Claude to Create Automated Tests with Playwright

現(xiàn)在運(yùn)行pytest測(cè)試/e2e/來實(shí)際運(yùn)行測(cè)試!

所有測(cè)試都因相同錯(cuò)誤而失?。?br>

Exception during DB migration:
 raise ValueError("Constraint must have a name")
ValueError: Constraint must have a name

pytest.ini 中,base_url 設(shè)定為 http://localhost:5000,這對(duì)我來說看起來很正確。

我不明白為什麼失敗,所以我問克勞德。他做了一些小調(diào)整,然後建議我將 pytest.ini 檔案移至專案的 ROOT 目錄,並移出他最初放置該檔案的 test/e2e 目錄。 我反駁了這一點(diǎn),他說那裡很好。 好吧…

他也建議我在測(cè)試中使用絕對(duì) URL,而不是 INI 檔案和文字裝置中設(shè)定的 URL。 錯(cuò)誤的。 我也反駁了這一點(diǎn),他同意並修復(fù)了它。 在這裡失去信心......

完成這些更改後,我再次運(yùn)行測(cè)試,現(xiàn)在我看到瀏覽器打開並轉(zhuǎn)到基本 URL,即知識(shí)庫(kù)的主頁(yè),但所有測(cè)試仍然失敗。 我和 Claude 又進(jìn)行了幾輪,看起來根頁(yè)面問題可能已經(jīng)解決,但現(xiàn)在我們失敗了:

playwright._impl._errors.Error: Protocol error (Page.navigate): Cannot navigate to invalid URL

這看起來更像是定位器問題。

[提示]

現(xiàn)在 test_admin.py 中的所有管理測(cè)試都因以下錯(cuò)誤而失?。篴dmin_page.fill("#topic-title", data["title"])。 這不是正確的定位器。 請(qǐng)修復(fù)。

[/提示]

Claude 修復(fù)了一項(xiàng)測(cè)試,但其他測(cè)試仍然因定位器錯(cuò)誤而失敗。 我說得更明確了:

[提示]

除了 test_create_topic 之外,@test_admin.py 中的其餘測(cè)試都因定位器錯(cuò)誤而失敗。請(qǐng)檢查測(cè)試中的所有定位器並更正它們。

[/提示]

Claude 做了一些更改,現(xiàn)在我們又遇到了另一個(gè)定位器問題…

[提示]

現(xiàn)在所有測(cè)試都失敗了:
測(cè)試/e2e/test_admin.py::test_create_topic[chromium] - AssertionError:定位器預(yù)計(jì)可見

[/提示]

很明顯,我們會(huì)在這裡待一段時(shí)間,在克勞德進(jìn)行必要的修復(fù)時(shí),我們會(huì)不停地轉(zhuǎn)來轉(zhuǎn)去。 同樣明顯和不幸的是,克勞德沒有應(yīng)用程式和頁(yè)面元素的正確上下文,而我不必非常明確。 僅僅要求克勞德「查看程式碼並創(chuàng)建測(cè)試」是不夠的。 您需要非常熟悉功能和頁(yè)面結(jié)構(gòu),以便您可以繼續(xù)使用。

Claude 在使用pytest.iniconftest.py 設(shè)定測(cè)試架構(gòu)方面很有幫助,但即便如此,它仍然需要進(jìn)行一些調(diào)整才能運(yùn)行基本測(cè)試,而無需立即運(yùn)行失敗。

專案在前端使用 Bootstrap 以及 Javascript 確認(rèn)和模式對(duì)話框。 如果原始碼中有多個(gè)模式,而只有一個(gè)模式可見,這是一種常見的設(shè)計(jì)模式,那麼克勞德似乎很難處理這些。 經(jīng)過多次迭代並用偽代碼引導(dǎo),我們最終達(dá)成了理解並通過了測(cè)試。

透過這些測(cè)試,Claude 對(duì)定位器的名稱做出了許多假設(shè),其中大部分在原始程式碼中不存在。 只有在明確告訴它查看某些文件之後它才能夠清理,但為什麼要做出假設(shè)呢? 也許我一開始就沒有提供它正確的文件? 我仍然不確定這一切應(yīng)該如何運(yùn)作。

有時(shí)它似乎可以訪問整個(gè)項(xiàng)目,而其他時(shí)候我需要更明確。 如果它需要訪問文件,它應(yīng)該詢問,而不僅僅是創(chuàng)建廢話代碼。 請(qǐng)記住,每次來回都會(huì)花費(fèi)您的 API 積分。

除了大量測(cè)試失敗之外,即使我在 pytest.ini 文件中傳遞標(biāo)誌,我還遇到屏幕截圖未保存的問題??藙诘陆o了我一些排列,但沒有一個(gè)能解決問題。 我查看了劇作家文檔,仍然沒有解決方案。 這似乎是「應(yīng)該很容易解決」的另一個(gè)問題,但你可以輕鬆地銷毀一打克勞德的請(qǐng)求,但很快就會(huì)一事無成。 我現(xiàn)在將繼續(xù)使用 Claude 建議的解決方法。

在花了太多時(shí)間與Claude 進(jìn)行調(diào)整之後,我現(xiàn)在只有兩個(gè)測(cè)試通過,第三個(gè)測(cè)試一開始是通過的,但由於測(cè)試代碼和固定代碼之間的一些衝突,最終以失敗告終。 調(diào)試變得很累,我感覺我正在進(jìn)行循環(huán)對(duì)話。 我已經(jīng)到了這樣的地步:我只是盲目地合併建議的程式碼更改並希望出現(xiàn)奇蹟。

在本章前面,我的目的是建立一個(gè)測(cè)試工具,用於播種和刪除測(cè)試資料以及可重複使用的固定裝置和函數(shù),以保持資料和測(cè)試程式碼的乾淨(jìng)。 這些意圖早已成為泡影,現(xiàn)在我只想通過測(cè)試,我稍後會(huì)嘗試清理它們。 如果其中任何一個(gè)聽起來很熟悉,請(qǐng)告訴我......

即使是看起來像啟動(dòng)時(shí)最大化瀏覽器視窗這樣簡(jiǎn)單的事情也被證明是太困難了。 Claude 嘗試使用 Python 和 Javascript,但行不通。 他不知道為什麼,Stack Overflow 上的天才已經(jīng)回答過這個(gè)問題好幾次了,他們的建議也不行。 我的猜測(cè)是檔案之間存在一些程式碼衝突,但我對(duì)程式碼的了解還不足以立即弄清楚。 當(dāng)你需要人工智慧時(shí)它在哪裡! ?

我發(fā)現(xiàn)一些產(chǎn)生的測(cè)試程式碼有多個(gè)expect/assert。 我相信每個(gè)測(cè)試只有一個(gè)斷言是最佳實(shí)踐,但知道這並不總是現(xiàn)實(shí)的情況,特別是當(dāng)測(cè)試是新的並且您還不信任它們時(shí)。

我發(fā)現(xiàn)自己是一名“及時(shí)工程師”,試圖找出如何將事情推向正確的方向。 由於我自己沒有編寫任何產(chǎn)品程式碼,因此我不熟悉其內(nèi)部工作原理,並希望 Claude 能夠拿起它並運(yùn)行它。 畢竟是他寫的,不過他好像記性不太好。 他給你的錢足夠讓你開始,但肯定不足以讓你問一次並收錢。

讓生活變得更輕鬆的是使用 API 來呼叫建立和刪除資料的 CRUD 函數(shù),讓端對(duì)端測(cè)試僅測(cè)試其預(yù)期功能。 如果您曾經(jīng)為軟體應(yīng)用程式編寫過自動(dòng)化測(cè)試,那麼這個(gè)測(cè)試項(xiàng)目的缺點(diǎn)和缺少的功能可能聽起來太熟悉了。 在真正開始測(cè)試產(chǎn)品功能之前,您通常最終必須解決產(chǎn)品缺點(diǎn)。 您可能還記得在第一章中,我打算建立 API-First 產(chǎn)品,但很快就失控了。 如果沒有 API,也許直接 SQL 呼叫對(duì)於設(shè)定和拆卸更有意義。

如果您在另一個(gè)專案中進(jìn)行自動(dòng)化測(cè)試,並且熟悉新專案的程式碼和頁(yè)面結(jié)構(gòu),複製/貼上/調(diào)整可能會(huì)比此處概述的 Claude Playwright 方法更快地幫助您。 至少這樣你會(huì)對(duì)程式碼有一定的熟悉,並且可以有信心地進(jìn)行調(diào)整。 截至目前(2024 年 11 月),我發(fā)現(xiàn)要求 Claude 與 Playwright 一起產(chǎn)生端對(duì)端測(cè)試是一項(xiàng)痛苦的練習(xí)。

Part  Using Cursor and Claude to Create Automated Tests with Playwright


關(guān)於作者

Joe Giglio 是一位擁有 25 年軟體產(chǎn)業(yè)經(jīng)驗(yàn)的資深人士。在他的職業(yè)生涯中,他曾在一家本地?fù)芴?hào) ISP、各種規(guī)模的新創(chuàng)公司以及一家成熟、發(fā)展緩慢的企業(yè)工作。每一站都學(xué)到了重要的經(jīng)驗(yàn)教訓(xùn)。

他最近的項(xiàng)目包括:

遠(yuǎn)距工作訓(xùn)練與諮詢:chiefremoteofficer.com

Kindle 書籍《讓遠(yuǎn)距工作,為你工作》

遠(yuǎn)距公司排名。想想「遠(yuǎn)端公司的玻璃門」:remotescorecard.com

Joe 的指導(dǎo)原則是:遠(yuǎn)距優(yōu)先、品質(zhì)驅(qū)動(dòng)、客戶支援和終身學(xué)習(xí)。他是一個(gè)內(nèi)向的人,早在它流行之前就練習(xí)了社交距離!

他目前住在北卡羅來納州,始終對(duì)新的機(jī)會(huì)、結(jié)識(shí)優(yōu)秀人才和了解令人興奮的項(xiàng)目感興趣。

聯(lián)絡(luò) Joe Giglio:joe -AT- joegiglio.org |推特 |領(lǐng)英

以上是Part 使用 Cursor 和 Claude 與 Playwright 建立自動(dòng)化測(cè)試的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請(qǐng)聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁(yè)開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)程式碼編輯軟體(SublimeText3)

熱門話題

Laravel 教程
1600
29
PHP教程
1502
276
如何處理Python中的API身份驗(yàn)證 如何處理Python中的API身份驗(yàn)證 Jul 13, 2025 am 02:22 AM

處理API認(rèn)證的關(guān)鍵在於理解並正確使用認(rèn)證方式。 1.APIKey是最簡(jiǎn)單的認(rèn)證方式,通常放在請(qǐng)求頭或URL參數(shù)中;2.BasicAuth使用用戶名和密碼進(jìn)行Base64編碼傳輸,適合內(nèi)部系統(tǒng);3.OAuth2需先通過client_id和client_secret獲取Token,再在請(qǐng)求頭中帶上BearerToken;4.為應(yīng)對(duì)Token過期,可封裝Token管理類自動(dòng)刷新Token;總之,根據(jù)文檔選擇合適方式,並安全存儲(chǔ)密鑰信息是關(guān)鍵。

解釋Python斷言。 解釋Python斷言。 Jul 07, 2025 am 12:14 AM

Assert是Python用於調(diào)試的斷言工具,當(dāng)條件不滿足時(shí)拋出AssertionError。其語(yǔ)法為assert條件加可選錯(cuò)誤信息,適用於內(nèi)部邏輯驗(yàn)證如參數(shù)檢查、狀態(tài)確認(rèn)等,但不能用於安全或用戶輸入檢查,且應(yīng)配合清晰提示信息使用,僅限開發(fā)階段輔助調(diào)試而非替代異常處理。

什麼是Python型提示? 什麼是Python型提示? Jul 07, 2025 am 02:55 AM

typeHintsInpyThonsolverbromblemboyofambiguityandPotentialBugSindyNamalytyCodeByallowingDevelopsosteSpecefectifyExpectedTypes.theyenhancereadability,enablellybugdetection,andimprovetool.typehintsupport.typehintsareadsareadsareadsareadsareadsareadsareadsareadsareaddedusidocolon(

如何一次迭代兩個(gè)列表 如何一次迭代兩個(gè)列表 Jul 09, 2025 am 01:13 AM

在Python中同時(shí)遍歷兩個(gè)列表的常用方法是使用zip()函數(shù),它會(huì)按順序配對(duì)多個(gè)列表並以最短為準(zhǔn);若列表長(zhǎng)度不一致,可使用itertools.zip_longest()以最長(zhǎng)為準(zhǔn)並填充缺失值;結(jié)合enumerate()可同時(shí)獲取索引。 1.zip()簡(jiǎn)潔實(shí)用,適合成對(duì)數(shù)據(jù)迭代;2.zip_longest()處理不一致長(zhǎng)度時(shí)可填充默認(rèn)值;3.enumerate(zip())可在遍歷時(shí)獲取索引,滿足多種複雜場(chǎng)景需求。

什麼是Python迭代器? 什麼是Python迭代器? Jul 08, 2025 am 02:56 AM

Inpython,IteratorSareObjectSthallowloopingThroughCollectionsByImplementing_iter __()和__next __()。 1)iteratorsWiaTheIteratorProtocol,使用__ITER __()toreTurnterateratoratoranteratoratoranteratoratorAnterAnteratoratorant antheittheext__()

Python Fastapi教程 Python Fastapi教程 Jul 12, 2025 am 02:42 AM

要使用Python創(chuàng)建現(xiàn)代高效的API,推薦使用FastAPI;其基於標(biāo)準(zhǔn)Python類型提示,可自動(dòng)生成文檔,性能優(yōu)越。安裝FastAPI和ASGI服務(wù)器uvicorn後,即可編寫接口代碼。通過定義路由、編寫處理函數(shù)並返回?cái)?shù)據(jù),可以快速構(gòu)建API。 FastAPI支持多種HTTP方法,並提供自動(dòng)生成的SwaggerUI和ReDoc文檔系統(tǒng)。 URL參數(shù)可通過路徑定義捕獲,查詢參數(shù)則通過函數(shù)參數(shù)設(shè)置默認(rèn)值實(shí)現(xiàn)。合理使用Pydantic模型有助於提升開發(fā)效率和準(zhǔn)確性。

如何用Python測(cè)試API 如何用Python測(cè)試API Jul 12, 2025 am 02:47 AM

要測(cè)試API需使用Python的Requests庫(kù),步驟為安裝庫(kù)、發(fā)送請(qǐng)求、驗(yàn)證響應(yīng)、設(shè)置超時(shí)與重試。首先通過pipinstallrequests安裝庫(kù);接著用requests.get()或requests.post()等方法發(fā)送GET或POST請(qǐng)求;然後檢查response.status_code和response.json()確保返回結(jié)果符合預(yù)期;最後可添加timeout參數(shù)設(shè)置超時(shí)時(shí)間,並結(jié)合retrying庫(kù)實(shí)現(xiàn)自動(dòng)重試以增強(qiáng)穩(wěn)定性。

Python函數(shù)可變範(fàn)圍 Python函數(shù)可變範(fàn)圍 Jul 12, 2025 am 02:49 AM

在Python中,函數(shù)內(nèi)部定義的變量是局部變量,僅在函數(shù)內(nèi)有效;外部定義的是全局變量,可在任何地方讀取。 1.局部變量隨函數(shù)執(zhí)行結(jié)束被銷毀;2.函數(shù)可訪問全局變量但不能直接修改,需用global關(guān)鍵字;3.嵌套函數(shù)中若要修改外層函數(shù)變量,需使用nonlocal關(guān)鍵字;4.同名變量在不同作用域互不影響;5.修改全局變量時(shí)必須聲明global,否則會(huì)引發(fā)UnboundLocalError錯(cuò)誤。理解這些規(guī)則有助於避免bug並寫出更可靠的函數(shù)。

See all articles