首页 >web前端 >js教程 >软件测试模板:该人工智能工具如何用简单的英语命令替换传统脚本。

软件测试模板:该人工智能工具如何用简单的英语命令替换传统脚本。

Barbara Streisand
Barbara Streisand原创
2024-12-26 08:09:13653浏览

听着,开发者。

还记得那些没完没了地编写重复测试脚本的时间吗?一行一行地调试代码?手动创建测试场景,感觉像是在蒙着眼睛解魔方?

那些日子正式结束了。

我们正站在测试革命的边缘,这场革命即将颠覆你所知道的一切。传统脚本不仅发生了变化,而且正在被新一波更智能的测试工具彻底重塑。

让我们来分解一下。传统的测试工作流程看起来就像一场噩梦:

  • 手动编写复杂的脚本

  • 花费数小时创建测试场景

  • 管理多个框架

  • 跨平台兼容性的挣扎

  • 浪费时间调试基础设施而不是实际问题

但是如果您可以...与您的测试工具交谈怎么办?

想象一下告诉人工智能,“测试这个银行网站的登录流程”并看着它自动生成全面的测试脚本。不再需要与 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