技术分享 | Selenium 测试用例编写

简介: 技术分享 | Selenium 测试用例编写

编写Selenium测试用例就是模拟用户在浏览器上的一系列操作,通过脚本来完成自动化测试。

编写测试用例的优势:

  • 开源,免费。
  • 支持多种浏览器 IE,Firefox,Chrome,Safari。
  • 支持多平台 Windows,Linux,Mac。
  • 支持多语言 Python,Java,C#。
  • 对 Web 支持良好。
  • 简单,灵活。
  • 支持分布式测试用例执行。

引入依赖

引入依赖是为了调用 webdriver 中的方法来与浏览器进行交互以实现操作步骤。

  • Python版本
from selenium import webdriver
  • Java版本
import org.openqa.selenium.By;
import org.openqa.selenium.chrome.ChromeDriver;

测试用例的流程

测试用例是为了实施测试从而向被测试的系统提供的一组集合,这组集合包含:测试环境、操作步骤、测试数据、预期结果等。

注意:一条测试用例的最终结果只有一个:成功或者失败。

三大核心要素为 :标题 、步骤 、预期结果

  • 标题:是对测试用例的描述,标题应该清楚的表达测试用例的内容
  • 步骤:对测试执行过程进行描述
  • 预期结果:提供测试执行的预期结果,预期结果一般是根据需求得出,如果实际结果和预期结果一致则测试通过,反之失败。

实战演练

首先是在代码的最上面导入了 Selenium 的包,其次是测试方法命名、测试步骤、断言。测试用例内容是要断言打开百度页面所展现的内容与所期望的值是否相等。

  • Python版本
from selenium import webdriver
# 测试的标题即 test_search
def test_search():
    driver = webdriver.Chrome()
    # 测试的步骤
    driver.get('https://www.baidu.com')
    search = driver.find_element_by_id('su').get_attribute('value')
    # 断言预期结果
    assert search == "百度"
  • Java版本
import org.junit.jupiter.api.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.chrome.ChromeDriver;
public class webTest {
    private ChromeDriver driver;
    @Test
    void search() throws InterruptedException {
        //实例化driver
        driver = new ChromeDriver();
        //打开网页
        driver.get("https://www.baidu.com");
        //测试的步骤
        String data = driver.findElement(By.id("su")).getAttribute("value");
        assert data.equals("百度");
    }
}

这里要断言打开百度页面所展现的内容与所期望的值是否相等。因为实际获取到的内容应该是百度一下而不是百度,所以断言错误。

FAILED                                         [100%]
test_demo.py:3 (test_search)
百度一下 != 百度
Expected :百度
Actual   :百度一下
<Click to see difference>
def test_search():
        driver = webdriver.Chrome()
        driver.get('https://www.baidu.com')
        search = driver.find_element_by_id('su').get_attribute('value')
>       assert search == "百度"
E       AssertionError: assert '百度一下' == '百度'
test_demo.py:9: AssertionError

跟着实战演练,开启编写Selenium测试用例之旅吧~


[更多技术文章](https://qrcode.ceba.ceshiren.com/link?name=article&project_id=qrcode&from=bjhao&timestamp=1650420125)

相关文章
|
Web App开发 IDE Java
技术分享 | Web自动化之Selenium安装
技术分享 | Web自动化之Selenium安装
|
Java 测试技术 Python
技术分享 | Selenium多浏览器处理
技术分享 | Selenium多浏览器处理
|
Web App开发 IDE Java
技术分享 | Web自动化之Selenium安装
技术分享 | Web自动化之Selenium安装
|
Web App开发 自然语言处理 Java
技术分享 | Selenium 测试用例编写
&gt; 本文节选自霍格沃兹测试开发学社内部教材 编写Selenium测试用例就是模拟用户在浏览器上的一系列操作,通过脚本来完成自动化测试。
|
1月前
|
Web App开发 前端开发 JavaScript
探索Python科学计算的边界:利用Selenium进行Web应用性能测试与优化
【10月更文挑战第6天】随着互联网技术的发展,Web应用程序已经成为人们日常生活和工作中不可或缺的一部分。这些应用不仅需要提供丰富的功能,还必须具备良好的性能表现以保证用户体验。性能测试是确保Web应用能够快速响应用户请求并处理大量并发访问的关键步骤之一。本文将探讨如何使用Python结合Selenium来进行Web应用的性能测试,并通过实际代码示例展示如何识别瓶颈及优化应用。
123 5
|
1月前
|
Java 测试技术 C#
自动化测试之美:从Selenium到Appium
【10月更文挑战第3天】在软件开发的海洋中,自动化测试如同一艘航船,引领着质量保证的方向。本文将带你领略自动化测试的魅力,从Web端的Selenium到移动端的Appium,我们将一探究竟,看看这些工具如何帮助我们高效地进行软件测试。你将了解到,自动化测试不仅仅是技术的展示,更是一种提升开发效率和产品质量的智慧选择。让我们一起启航,探索自动化测试的世界!
|
1月前
|
JavaScript 前端开发 测试技术
精通Selenium:从基础到高级的网页自动化测试策略
【10月更文挑战第6天】随着Web应用变得越来越复杂,手动进行功能和兼容性测试变得既耗时又容易出错。自动化测试因此成为了现代软件开发不可或缺的一部分。Selenium是一个强大的工具集,它支持多种编程语言(包括Python),允许开发者编写脚本来模拟用户与Web页面的交互。本文将带领读者从Selenium的基础知识出发,逐步深入到高级的应用场景,通过丰富的代码示例来展示如何高效地进行网页自动化测试。
327 5
|
1月前
|
Web App开发 IDE 测试技术
自动化测试的利器:Selenium 框架深度解析
【10月更文挑战第2天】在软件开发的海洋中,自动化测试犹如一艘救生艇,让质量保证的过程更加高效与精准。本文将深入探索Selenium这一强大的自动化测试框架,从其架构到实际应用,带领读者领略自动化测试的魅力和力量。通过直观的示例和清晰的步骤,我们将一起学习如何利用Selenium来提升软件测试的效率和覆盖率。
|
22天前
|
Web App开发 设计模式 JavaScript
自动化测试之美:如何利用Selenium实现Web应用的高效测试
【10月更文挑战第29天】在软件开发的世界中,测试是确保产品质量的关键步骤。本文将带你了解如何使用Selenium这一强大的自动化测试工具,提高Web应用测试的效率和准确性。通过实际案例,我们将探索Selenium的核心功能及其在现代软件开发中的应用,旨在帮助读者掌握自动化测试的精髓,从而提升软件测试工作的整体效能。
22 0
|
1月前
|
Web App开发 缓存 Linux
高效Selenium测试技巧:轻松控制已开启的浏览器
【10月更文挑战第13天】在进行Selenium测试时,通常会启动新浏览器实例,但有时需要控制已开启的浏览器,以节省时间并更真实地模拟用户行为。这可通过设置Chrome为可远程控制并使用`Remote WebDriver`连接实现。需在启动Chrome时添加`--remote-debugging-port`参数,并通过Python脚本中的`webdriver.Remote`连接至指定端口。此外,还可利用会话ID(Session ID)重新连接浏览器,提高测试灵活性。需要注意浏览器版本兼容性及元素定位稳定性等问题,确保测试准确性和一致性。
291 1
下一篇
无影云桌面