Selenium 测试用例编写

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

编写测试用例的优势:

开源,免费。

支持多种浏览器 IE,Firefox,Chrome,Safari。

支持多平台 Windows,Linux,Mac。

支持多语言 Python,Java,C#。

对 Web 支持良好。

简单,灵活。

支持分布式测试用例执行。

引入依赖

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

Python版本

复制代码
from selenium import webdriver
  • Java版本
python 复制代码
import org.openqa.selenium.By;
import org.openqa.selenium.chrome.ChromeDriver;

测试用例的流程

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

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

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

标题:是对测试用例的描述,标题应该清楚的表达测试用例的内容

步骤:对测试执行过程进行描述

预期结果:提供测试执行的预期结果,预期结果一般是根据需求得出,如果实际结果和预期结果一致则测试通过,反之失败。

实战演练

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

Python版本

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版本
python 复制代码
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("百度");
    }
}

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

python 复制代码
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测试用例之旅吧~

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:【文末领取】


【下面是我整理的2023年最全的软件测试工程师学习知识架构体系图+全套资料】


一、Python编程入门到精通

二、接口自动化项目实战

三、Web自动化项目实战

四、App自动化项目实战

五、一线大厂简历

六、测试开发DevOps体系

七、常用自动化测试工具

八、JMeter性能测试

九、总结(文末尾部小惊喜)

生命不息,奋斗不止。每一份努力都不会被辜负,只要坚持不懈,终究会有回报。珍惜时间,追求梦想。不忘初心,砥砺前行。你的未来,由你掌握!

生命短暂,时间宝贵,我们无法预知未来会发生什么,但我们可以掌握当下。珍惜每一天,努力奋斗,让自己变得更加强大和优秀。坚定信念,执着追求,成功终将属于你!

只有不断地挑战自己,才能不断地超越自己。坚持追求梦想,勇敢前行,你就会发现奋斗的过程是如此美好而值得。相信自己,你一定可以做到!

相关推荐
Star(up up up)15 小时前
Redis Windows 安装教程:使用Windows 的 Redis 压缩包
redis·笔记·学习·程序人生·云原生·学习方法·改行学it
火云代理2 天前
同一个网站,有的网络能打开、有的打不开?认识 IPv4 与 IPv6 的访问差异
服务器·网络·网络协议·tcp/ip·测试工具·php·状态模式
专注仿真4 天前
自动化测试实战项目开发:从零搭建一套可落地的测试框架
自动化测试
freejackman6 天前
【工程化】从“单兵作战”到“多引擎架构”:基于门面模式的重构实战
大数据·数据库·hive·sql·测试工具·设计模式·架构
秋天的怀念_David6 天前
算法一千零一夜 · 第二十八夜 注册
java·程序人生·算法
坐吃山猪6 天前
Python22-PostMan调试MCP
测试工具·postman·mcp
测试界的小码农7 天前
【 AI Agent 软件测试实战(05):任务规划与状态管理,让 Agent 学会拆解复杂测试任务】
人工智能·测试工具
五网7 天前
软件测试用例模板怎么写:从用例设计到执行记录的全套指南
软件测试·论文阅读·全文检索·测试用例·论文笔记·用例设计·用例模板
ShuangNaoPai8 天前
饱和品类的心智词生成:从“新米”认知到“五新米”的判定路由
人工智能·程序人生·产品·思维·品牌营销
和粒科技9 天前
热重分析仪TG 309 Libra Classic
测试工具