首頁 >web前端 >js教程 >軟體測試模板:此人工智慧工具如何用簡單的英語命令取代傳統腳本。

軟體測試模板:此人工智慧工具如何用簡單的英語命令取代傳統腳本。

Barbara Streisand
Barbara Streisand原創
2024-12-26 08:09:13692瀏覽

聽著,開發者。

還記得那些沒完沒了地寫重複測試腳本的時間嗎?一行一行地偵錯程式碼?手動建立測試場景,感覺像是在蒙著眼睛解魔術方塊?

那些日子正式結束了。

我們正站在測試革命的邊緣,這場革命即將顛覆你所知道的一切。傳統腳本不僅發生了變化,而且正在被新一波更聰明的測試工具徹底重塑。

讓我們來分解一下。傳統的測驗工作流程看起來就像一場惡夢:

  • 手動寫複雜的腳本

  • 花數小時創建測試場景

  • 管理多個框架

  • 跨平台相容性的掙扎

  • 浪費時間調試基礎設施而不是實際問題

但是如果您可以...與您的測試工具交談怎麼辦?

想像告訴人工智慧,「測試這個銀行網站的登入流程」並看著它自動產生全面的測試腳本。不再需要與 Selenium 較勁。不再需要配置無止盡的測試環境。

這不是科幻小說。這件事正在發生。

AI測試運動不只是一次升級,更是徹底的系統重啟。我們正在談論的工具可以:

  • 使用自然語言產生測試腳本

  • 在幾秒鐘內創建多平台測試場景

  • 自動適配不同框架

  • 從先前的測驗執行中學習

  • 在潛在故障點發生之前預測它們

這些數字令人震驚:

  • 公司每年因軟體故障而損失 2.41 兆美元(資料來源:資訊與軟體品質聯盟)。

  • 傳統測驗消耗 25-35%(平均) 的開發時間。

  • 手動測試在 15-20% 的場景中引入了人為錯誤。

但真正的亮點是:人工智慧驅動的測試工具已顯示出可以將測試時間減少高達 90%,同時也將缺陷檢測率提高超過 40%

KaneAI 簡介:下一代測試解決方案

KaneAI 不只是另一個測試工具。它是世界上第一個由先進的大型語言模型提供支援的端到端軟體測試代理。

它有什麼特別之處?

  • 測試生成與演化:使用自然語言輸入輕鬆建立測驗

  • 多語言程式碼匯出:跨主要語言和框架轉換自動化測試

  • 智慧測試規劃器:根據進階目標自動產生和自動化測試步驟

  • 智慧簡報模式:將您的動作轉換為自然語言指令

  • 複雜的測試能力:自然地表達複雜的條件和斷言

  • 彈性測試:內建智慧功能與自動修復

  • 跨平台覆蓋: 為網路和行動平台開發測試

在 JIRA、Slack 和 GitHub 問題中標記 KaneAI、雙向測試編輯和智慧版本控制等獨特功能使其成為遊戲規則的改變者。

在本指南中,我們不僅僅是向您展示一個工具。我們給你一件武器。

我們會觸摸:

  • 自然語言測驗產生

  • JavaScript 互動範本

  • API 測試策略

  • 使用實際示範網站的真實場景

這些不僅僅是模板 - 它們是您改變測試方式的門票。將它們視為更好工作方式的藏寶圖。每個腳本和互動就像一個空白頁等待您創建一些很棒的東西。

想像一下自己擺脫了舊式測驗的限制。您不再只是編寫測試 - 您正在建立自動檢查事物的智慧方法。

提示

將這些模板視為構建塊。你是創造者。

你的任務是讓它們完全符合你的需要,嘗試檢查事情的棘手方法,向每個人展示自動化測試是多麼酷,並將無聊的測試變成令人興奮的事情。

實用測試模板

在軟體開發領域,測試不僅是發現錯誤,而是創建能夠應對現實世界挑戰的系統。本節詳細介紹了實用的測試模板,這些模板可將複雜的開發問題轉化為跨各種場景的智慧、可操作的解決方案。

在轉向 JavaScript 和 NLP 範本之前,讓我們先從 KaneAI 的 Web 代理程式開始建立測試案例。以下是如何開始:

  1. 在 KaneAI 註冊

    • 前往 https://www.lambdatest.com/kane-ai/ 註冊。
  2. 存取網路代理

    • 註冊後,前往 kaneai.lambdatest.com 並登入。
  3. 建立 Web 測驗

    • 點選「建立 Web 測試」 開啟 Web 代理程式。

接下來,讓我們繼續使用 JavaScript 和 NLP 模板來增強您的測試創建。

一、Web互動模板:JavaScript和NLP

1. OrangeHRM互動模板

自然語言處理指令

  1. 前往 https://opensource-demo.orangehrmlive.com/

  2. 在使用者名字段中輸入「Admin」

  3. 在密碼欄位輸入「admin123」

  4. 點選登入按鈕

  5. 等待2秒

JavaScript 程式碼

function simulateTyping(element, text) {
    element.value = '';

    for (let i = 0; i < text.length; i++) {
        let char = text[i];
        let keyDownEvent = new KeyboardEvent('keydown', { key: char });
        element.dispatchEvent(keyDownEvent);
        element.value += char;

        let inputEvent = new Event('input', { bubbles: true });
        element.dispatchEvent(inputEvent);

        let keyUpEvent = new KeyboardEvent('keyup', { key: char });
        element.dispatchEvent(keyUpEvent);
    }

    let changeEvent = new Event('change', { bubbles: true });
    element.dispatchEvent(changeEvent);
}

function handleDashboardInteractions() {
    const searchInput = document.querySelector('input.oxd-input.oxd-input--active[placeholder="Search"]');

    if (searchInput) {
        simulateTyping(searchInput, "Test Search Query");

        const quickLaunch = document.querySelectorAll('.orangehrm-quick-launch-card');

        if (quickLaunch.length > 0) {
            const firstCard = quickLaunch[0];
            firstCard.style.backgroundColor = 'red';
            firstCard.click();
        }
    }

    const pathElement = document.querySelector('path.cls-1');

    if (pathElement) {
        pathElement.style.fill = 'red';
    }

    return {
        status: "Dashboard interaction complete",
        timestamp: new Date().toISOString()
    };
}

const result = handleDashboardInteractions();
return result;

說明

  • 此範本模擬 Web 介面上的進階使用者互動

  • 顯示鍵入、事件觸發和元素操作的精確控制

  • 使用鍵盤和輸入事件來模仿類人互動

  • 適用於自動化測試、網頁抓取、互動模擬場景

oftware Testing Templates: How This AI Tool Replaced Traditional Scripting with Plain English Commands.

oftware Testing Templates: How This AI Tool Replaced Traditional Scripting with Plain English Commands.

生產用例

  • 自動化 Web 測試框架

  • 網站互動監控

  • 使用者行為模擬

  • 輔助使用測試工具

  • Web 應用程式的效能測試

2. DemoQA表單互動模板

自然語言處理指令

  1. 前往 https://demoqa.com/elements

  2. 點選「文字方塊」選項

  3. 等待2秒

JavaScript 程式碼

async function handleDemoQAForms() {
    const formData = {
        fullName: "John Doe",
        email: "john@example.com",
        currentAddress: "123 Test Street",
        permanentAddress: "456 Demo Avenue"
    };

    const inputs = {
        "userName": formData.fullName,
        "userEmail": formData.email,
        "currentAddress": formData.currentAddress,
        "permanentAddress": formData.permanentAddress
    };

    for (const [id, value] of Object.entries(inputs)) {
        const input = document.getElementById(id);
        if (input) {
            input.focus();
            await new Promise(r => setTimeout(r, 300));
            input.value = value;
            input.dispatchEvent(new Event('input', { bubbles: true }));
            input.dispatchEvent(new Event('change', { bubbles: true }));
            await new Promise(r => setTimeout(r, 500));
        }
    }

    return formData;
}

const result = handleDemoQAForms();
return result;

說明

  • 示範以受控時間進行非同步表單填入

  • 模擬真實的使用者與表單欄位的互動

  • 使用事件調度來觸發驗證和輸入機制

oftware Testing Templates: How This AI Tool Replaced Traditional Scripting with Plain English Commands.

oftware Testing Templates: How This AI Tool Replaced Traditional Scripting with Plain English Commands.

生產用例

  • 表單自動化測驗

  • 資料輸入驗證

  • 瀏覽器擴充開發

  • 自動使用者註冊流程

3.無限滾動處理模板

自然語言處理指令

  1. 前往 https://the-internet.herokuapp.com/infinite-scroll

  2. 等待2秒

  3. 捲動到頁底

JavaScript 程式碼

async function handleInfiniteScroll() {
    let scrollCount = 0;
    let isScrolling = false;

    const smoothScroll = async () => {
        if (isScrolling) return;
        isScrolling = true;

        const scrollStep = async () => {
            if (scrollCount >= 5) {
                isScrolling = false;
                return;
            }

            window.scrollBy({
                top: 100,
                behavior: 'smooth'
            });

            await new Promise(r => setTimeout(r, 100));

            if (window.innerHeight + window.scrollY >= document.body.offsetHeight - 200) {
                scrollCount++;
                await new Promise(r => setTimeout(r, 1000)); // Wait for new content to load
            }

            if (isScrolling) {
                requestAnimationFrame(scrollStep);
            }
        };

        requestAnimationFrame(scrollStep);
    };

    return smoothScroll();
}


handleInfiniteScroll().then(() => {
    return {
        status: "Infinite scrolling completed",
        timestamp: new Date().toISOString()
    };
});

說明

  • 進階無限滾動模擬

  • 透過受控迭代實現平滑滾動

  • 偵測頁面底部並管理滾動載入

oftware Testing Templates: How This AI Tool Replaced Traditional Scripting with Plain English Commands.

生產用例

  • 無限滾動網站的效能測試

  • 內容載入驗證

  • 社群媒體來源模擬器

  • Web 應用程式互動測試

4.儀表板指標提取模板

自然語言處理指令

  1. 前往 https://demo.opencart.com/admin/

  2. 在使用者名字段中輸入「demo」

  3. 在密碼欄位輸入「demo」

  4. 點選登入按鈕

  5. 等待2秒

注意:偶爾,平台可能會因驗證碼限製或Wi-Fi連線不穩定而遇到問題。請確保在繼續之前解決這些問題。

JavaScript 程式碼

function simulateTyping(element, text) {
    element.value = '';

    for (let i = 0; i < text.length; i++) {
        let char = text[i];
        let keyDownEvent = new KeyboardEvent('keydown', { key: char });
        element.dispatchEvent(keyDownEvent);
        element.value += char;

        let inputEvent = new Event('input', { bubbles: true });
        element.dispatchEvent(inputEvent);

        let keyUpEvent = new KeyboardEvent('keyup', { key: char });
        element.dispatchEvent(keyUpEvent);
    }

    let changeEvent = new Event('change', { bubbles: true });
    element.dispatchEvent(changeEvent);
}

function handleDashboardInteractions() {
    const searchInput = document.querySelector('input.oxd-input.oxd-input--active[placeholder="Search"]');

    if (searchInput) {
        simulateTyping(searchInput, "Test Search Query");

        const quickLaunch = document.querySelectorAll('.orangehrm-quick-launch-card');

        if (quickLaunch.length > 0) {
            const firstCard = quickLaunch[0];
            firstCard.style.backgroundColor = 'red';
            firstCard.click();
        }
    }

    const pathElement = document.querySelector('path.cls-1');

    if (pathElement) {
        pathElement.style.fill = 'red';
    }

    return {
        status: "Dashboard interaction complete",
        timestamp: new Date().toISOString()
    };
}

const result = handleDashboardInteractions();
return result;

說明

  • 強大的儀表板指標擷取

  • 處理動態內容載入

  • 將基於字串的指標轉換為數值

  • 支援千位「K」表示法

生產用例

  • 商業智慧儀表板

  • 自動回報系統

  • 效能監控工具

  • 資料擷取與分析

二. API測試模板

A. JSONPlaceholder CRUD 操作

基本 URL:https://jsonplaceholder.typicode.com

  1. 建立貼文
async function handleDemoQAForms() {
    const formData = {
        fullName: "John Doe",
        email: "john@example.com",
        currentAddress: "123 Test Street",
        permanentAddress: "456 Demo Avenue"
    };

    const inputs = {
        "userName": formData.fullName,
        "userEmail": formData.email,
        "currentAddress": formData.currentAddress,
        "permanentAddress": formData.permanentAddress
    };

    for (const [id, value] of Object.entries(inputs)) {
        const input = document.getElementById(id);
        if (input) {
            input.focus();
            await new Promise(r => setTimeout(r, 300));
            input.value = value;
            input.dispatchEvent(new Event('input', { bubbles: true }));
            input.dispatchEvent(new Event('change', { bubbles: true }));
            await new Promise(r => setTimeout(r, 500));
        }
    }

    return formData;
}

const result = handleDemoQAForms();
return result;

oftware Testing Templates: How This AI Tool Replaced Traditional Scripting with Plain English Commands.

oftware Testing Templates: How This AI Tool Replaced Traditional Scripting with Plain English Commands.

  1. 取得貼文
async function handleInfiniteScroll() {
    let scrollCount = 0;
    let isScrolling = false;

    const smoothScroll = async () => {
        if (isScrolling) return;
        isScrolling = true;

        const scrollStep = async () => {
            if (scrollCount >= 5) {
                isScrolling = false;
                return;
            }

            window.scrollBy({
                top: 100,
                behavior: 'smooth'
            });

            await new Promise(r => setTimeout(r, 100));

            if (window.innerHeight + window.scrollY >= document.body.offsetHeight - 200) {
                scrollCount++;
                await new Promise(r => setTimeout(r, 1000)); // Wait for new content to load
            }

            if (isScrolling) {
                requestAnimationFrame(scrollStep);
            }
        };

        requestAnimationFrame(scrollStep);
    };

    return smoothScroll();
}


handleInfiniteScroll().then(() => {
    return {
        status: "Infinite scrolling completed",
        timestamp: new Date().toISOString()
    };
});
  1. 更新貼文
async function analyzeDashboardMetrics() {
    const metrics = {
        totalOrders: 0,
        totalSales: 0,
        customerCount: 0
    };

    const waitForElement = (selector, timeout = 10000) => {
        return new Promise((resolve, reject) => {
            const interval = setInterval(() => {
                const element = document.querySelector(selector);
                if (element) {
                    clearInterval(interval);
                    resolve(element);
                }
            }, 500);

            setTimeout(() => {
                clearInterval(interval);
                reject(new Error(`Timeout: Element ${selector} not found`));
            }, timeout);
        });
    };

    await waitForElement('.tile');

    const tiles = document.querySelectorAll('.tile');
    if (tiles.length > 0) {
        if (tiles[0]) {
            const value = tiles[0].querySelector('.tile-body h2')?.textContent || '0';
            metrics.totalOrders = parseFloat(value.replace(/[^0-9.]/g, '')) * (value.includes('K') ? 1000 : 1);
        }
        if (tiles[1]) {
            const value = tiles[1].querySelector('.tile-body h2')?.textContent || '0';
            metrics.totalSales = parseFloat(value.replace(/[^0-9.]/g, '')) * (value.includes('K') ? 1000 : 1);
        }
        if (tiles[2]) {
            const value = tiles[2].querySelector('.tile-body h2')?.textContent || '0';
            metrics.customerCount = parseFloat(value.replace(/[^0-9.]/g, '')) * (value.includes('K') ? 1000 : 1);
        }
    }

    return metrics;
}


const result = analyzeDashboardMetrics();
return result;

oftware Testing Templates: How This AI Tool Replaced Traditional Scripting with Plain English Commands.

  1. 刪除貼文
Method: POST
Endpoint: /posts
Body:
{
    "title": "Test Post",
    "body": "Test Content",
    "userId": 1
}

oftware Testing Templates: How This AI Tool Replaced Traditional Scripting with Plain English Commands.

B.假商店API電商經營

基本網址:https://fakestoreapi.com

  1. 取得產品
function simulateTyping(element, text) {
    element.value = '';

    for (let i = 0; i < text.length; i++) {
        let char = text[i];
        let keyDownEvent = new KeyboardEvent('keydown', { key: char });
        element.dispatchEvent(keyDownEvent);
        element.value += char;

        let inputEvent = new Event('input', { bubbles: true });
        element.dispatchEvent(inputEvent);

        let keyUpEvent = new KeyboardEvent('keyup', { key: char });
        element.dispatchEvent(keyUpEvent);
    }

    let changeEvent = new Event('change', { bubbles: true });
    element.dispatchEvent(changeEvent);
}

function handleDashboardInteractions() {
    const searchInput = document.querySelector('input.oxd-input.oxd-input--active[placeholder="Search"]');

    if (searchInput) {
        simulateTyping(searchInput, "Test Search Query");

        const quickLaunch = document.querySelectorAll('.orangehrm-quick-launch-card');

        if (quickLaunch.length > 0) {
            const firstCard = quickLaunch[0];
            firstCard.style.backgroundColor = 'red';
            firstCard.click();
        }
    }

    const pathElement = document.querySelector('path.cls-1');

    if (pathElement) {
        pathElement.style.fill = 'red';
    }

    return {
        status: "Dashboard interaction complete",
        timestamp: new Date().toISOString()
    };
}

const result = handleDashboardInteractions();
return result;

oftware Testing Templates: How This AI Tool Replaced Traditional Scripting with Plain English Commands.

  1. 取得單品
async function handleDemoQAForms() {
    const formData = {
        fullName: "John Doe",
        email: "john@example.com",
        currentAddress: "123 Test Street",
        permanentAddress: "456 Demo Avenue"
    };

    const inputs = {
        "userName": formData.fullName,
        "userEmail": formData.email,
        "currentAddress": formData.currentAddress,
        "permanentAddress": formData.permanentAddress
    };

    for (const [id, value] of Object.entries(inputs)) {
        const input = document.getElementById(id);
        if (input) {
            input.focus();
            await new Promise(r => setTimeout(r, 300));
            input.value = value;
            input.dispatchEvent(new Event('input', { bubbles: true }));
            input.dispatchEvent(new Event('change', { bubbles: true }));
            await new Promise(r => setTimeout(r, 500));
        }
    }

    return formData;
}

const result = handleDemoQAForms();
return result;
  1. 取得類別
async function handleInfiniteScroll() {
    let scrollCount = 0;
    let isScrolling = false;

    const smoothScroll = async () => {
        if (isScrolling) return;
        isScrolling = true;

        const scrollStep = async () => {
            if (scrollCount >= 5) {
                isScrolling = false;
                return;
            }

            window.scrollBy({
                top: 100,
                behavior: 'smooth'
            });

            await new Promise(r => setTimeout(r, 100));

            if (window.innerHeight + window.scrollY >= document.body.offsetHeight - 200) {
                scrollCount++;
                await new Promise(r => setTimeout(r, 1000)); // Wait for new content to load
            }

            if (isScrolling) {
                requestAnimationFrame(scrollStep);
            }
        };

        requestAnimationFrame(scrollStep);
    };

    return smoothScroll();
}


handleInfiniteScroll().then(() => {
    return {
        status: "Infinite scrolling completed",
        timestamp: new Date().toISOString()
    };
});

oftware Testing Templates: How This AI Tool Replaced Traditional Scripting with Plain English Commands.

說明

  • 強大的儀表板指標擷取

  • 處理動態內容載入

  • 將基於字串的指標轉換為數值

  • 支援千位「K」表示法

生產用例

  • 商業智慧儀表板

  • 自動回報系統

  • 效能監控工具

  • 資料擷取與分析

為什麼 KaneAI 脫穎而出

  1. JavaScript 執行

    • 建立高度詳細的測試腳本並輕鬆管理複雜的使用者流程,突破傳統限制。
  2. 地理位置支援

    • 從全球任何位置進行測試,確保您的應用程式始終如一地運行,無論您的用戶身在何處。
  3. 進階滾動控制

    • 使用自然指令導覽側邊欄、隱藏內容或無限清單。 KaneAI 讓處理棘手的網路元素變得簡單。
  4. 無縫 Jira 整合

    • 直接從 Jira 票證產生測試案例,簡化您的工作流程並減少手動工作。
  5. API 檢定

    • 利用超越基礎的強大 API 功能進入後端測試。

KaneAI 命令指南:您的測驗伴侶

測試不必很複雜。借助 KaneAI 的自然語言命令,您可以將複雜的測試場景轉化為簡單的互動。

導航命令

  • 前往 https://example.com

  • 開啟新標籤

  • 切換到第二個標籤

  • 回傳

  • 刷新頁面

  • 向前導航

交互命令

  • 點選登入按鈕

  • 將滑鼠停留在個人資料選單上

  • 輸入「使用者名稱@email.com」

  • 清除電子郵件欄位

  • 搜尋「產品」

  • 按回車鍵

先進的互動技術

  • 條件操作

    • 如果有彈出窗口,請點選關閉
    • 如果產品價格
    • 如果出現錯誤訊息,請截圖
  • 捲動指令

    • 捲動至底部
    • 滾動 100 像素
    • 捲動到元素
    • 滾動3次

智能斷言

  • 斷言按鈕文字是否為「提交」

  • 驗證元素是否存在

  • 查詢目前網址

  • 檢查頁面標題

命令編寫的最佳實踐

  1. 具體且清晰

  2. 將複雜的任務分解為簡單的步驟

  3. 使用描述性語言

  4. 利用變數進行動態檢定

  5. 始終驗證您的測試流程

獎勵資源

  1. 影片 [創作者:穆罕默德·努拉尼]:

    oftware Testing Templates: How This AI Tool Replaced Traditional Scripting with Plain English Commands.

  2. 文章 [作者:Muhammad Noorani]:

    面向未來的 Web 測試:KaneAI 的 5 階段路線圖(獎勵分析儀表板)

  3. 其他資源

    KaneAI 官方文件

最後的收穫

測驗的未來不是做更多,而是做得更聰明。 KaneAI 將測試變成一個簡化的智慧流程,與您合作,而不是與您作對。

測試不僅更容易,而且更簡單。它更聰明。 KaneAI引領潮流,讓自動化、智慧化、高效率成為新常態。

準備好改變您的測試方式了嗎?試試 KaneAI,步入自動化測試的未來!您以前使用過AI測試工具嗎?在評論中分享你的想法或經驗

保持聯繫?

欲了解更多部落格、見解和更新,請關注我:

  • 我的所有連結

  • 我的部落格

讓我們一起學習,一起成長吧!

以上是軟體測試模板:此人工智慧工具如何用簡單的英語命令取代傳統腳本。的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn