尽管自动化测试在提高特定场景下的速度、精度和成本效率方面具有明显的优势,但一项有趣的统计数据表明,只有
小型项目:小型项目可能不需要自动化,只需几个手动测试人员就足够了。在这种情况下,手动测试提供了全面的覆盖范围,是一种更具成本效益和实用的方法。
示例:评估移动应用程序中新颖的基于手势的交互功能需要完全手动测试。这涉及评估这些交互的自然性、响应性和总体用户满意度,而自动化测试无法有效衡量这些。
测试人员手动执行手势来导航应用程序,直接评估该功能的直观性和用户体验。
示例:自动化测试对于对预计处理高流量(例如限时抢购期间)的 Web 应用程序进行压力测试至关重要。手动测试无法模拟 JMeter 等自动化工具可以模拟同时用户活动的规模,从而确保应用程序在峰值负载条件下的性能。
该表总结了手动测试和自动测试之间的主要区别,快速概述了它们的优势和挑战。它们之间的选择取决于项目要求,例如规模、复杂性以及即时反馈的需要。
__全自动的 __
标题:提交包含有效数据的《联系我们》表格
脚步:
预期结果:应显示“消息已发送”成功弹出窗口
__自动式化__
import { test } from '@playwright/test';
import ContactUsPage from '../pages/ContactUsPage';
const validFullName = 'Test Customer';
const validEmail = '[email protected]';
const validMessage = 'It is interesting to learn about your services, get advice on my project and discuss the free trial in more detail.\nThank you!\nWaiting for feedback!';
test.describe('Contact Us form test', () => {
test('Submit a «Contact Us» form with the valid data', async ({ page }) => {
const contactUsPage = new ContactUsPage(page);
// Navigate to the «Contact Us» page
await contactUsPage.navigate();
// Enter the valid data
await contactUsPage.enterFullName(validFullName);
await contactUsPage.enterEmail(validEmail);
await contactUsPage.enterMessage(validMessage);
// Check the «Privacy Policy» checkbox
await contactUsPage.clickPrivacyPolicyCheckbox();
// Click the «Send Message» button
await contactUsPage.clickSendMessageButton();
// Verify success message is displayed
await contactUsPage.isSuccessModalDisplayed();
});
});
例如,考虑一个向公民提供重要信息的政府网站。手动测试可确保有视觉障碍的个人可以使用屏幕阅读器浏览网站、访问必要的表格并接收重要更新。
例如,想象一下测试一个电子商务网站,其中自动脚本检查“添加到购物车”按钮的功能,并且看起来工作完美。然而,在手动测试过程中,测试人员注意到,当快速添加多个项目时,购物车图标会短暂闪烁,这可能会让用户对其选择的状态感到困惑。