
本文节选自霍格沃兹测试开发学社内部教材
编写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_searchdef 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;void search() throws InterruptedException {//实例化driverdriver = 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测试用例之旅吧~
推荐学习
内容全面升级,4 个月 20+ 项目实战强化训练,资深测试架构师、开源项目作者亲授 BAT 大厂前沿最佳实践,带你一站式掌握测试开发必备核心技能(对标阿里P6+,年薪50W+)!直推 BAT 名企测试经理,普遍涨薪 50%+!

⬇️ 点击“阅读原文”,提升测试核心竞争力!

文章评论