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性能测试

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

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

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

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

相关推荐
忧云38 分钟前
Wireshark 中文整完整安装与实操教程
测试工具·wireshark·抓包工具·tcp抓包
郝学胜-神的一滴2 小时前
Qt 高级开发 030:QListWidget 右键菜单全解,从策略配置到精准删除的优雅实现
开发语言·c++·qt·程序人生·用户界面
测试狗科研平台2 小时前
表面能测算:接触角测试的核心应用-测试GO
功能测试·科技·材料工程
星栈独行2 小时前
用 Rust + Makepad 做一个 JSON 查看器:从零到能用的全过程
开发语言·程序人生·ui·rust·json
yly201502032 小时前
wrk 使用教程
测试工具
007张三丰11 小时前
软件测试专栏(11/20):测试框架开发:pytest深度解析与插件体系
运维·服务器·自动化测试·pytest·测试框架
漫友也是程序猿15 小时前
ddraw.dll异常排查:旧游戏图形接口、兼容性模式和DirectX组件检查
程序人生·游戏·电脑
测试199820 小时前
Jmeter性能压测:TPS与QPS
自动化测试·软件测试·python·jmeter·测试用例·压力测试·性能测试
我的xiaodoujiao21 小时前
API 接口自动化测试详细图文教程学习系列25--继续处理testCase中的数据
python·学习·测试工具·pytest