1.Selenium 测试用例简介
编写 Selenium 测试用例的目的是模拟用户在模拟用户在浏览器上一系列的操作,通过测试脚本来完成被测对象的自动化测试。编写 Selenium 测试用例的优势如下。
(1)Selenium 是开源和免费的。
(2)Selenium 支持多种浏览器,如 IE、Firefox、Chrome、Safari。
(3)Selenium 支持多种平台,如 Windows、Linux。
(4)Selenium 支持多种语言,如 Python、Java、C#。
(5)Selenium 对 Web 支持良好。
(6)Selenium 使用简单和灵活。
(7)Selenium 支持分布式测试用例执行。
2.引入依赖
Selenium 引入依赖是为了调用 webdriver 中的方法来与浏览器进行交互,以实现测试操作。
(1)引入依赖的 Python 版本代码如下:
from selenium import webdriver
复制代码
(2)引入依赖的 Java 版本代码如下:
import org.openqa.selenium.By;
import org.openqa.selenium.chrome.ChromeDriver;
复制代码
3.测试用例的流程
测试用例是测试人员为了实施测试而被测试的系统提供的一个特定的“集合”,这个“集合”包含:测试环境、操作步骤、测试数据、预期结果等。
一个测试用例被实施后产生的结果只有一个:成功或者失败。测试用例流程的三大核心要素为:标题、步骤、预期结果。
(1)标题:是对测试用例的描述,标题应该清楚地表达测试用例的内容。
(2)步骤:对测试执行过程进行描述。
(3)预期结果:提供测试执行的预期结果,预期结果一般是根据需求得出,如果实际结果和预期结果一致则测试通过,反之失败。
4.实例实战演示
测试用例执行的步骤如下。
(1)打开百度页面
(2)在百度的首页获取“百度一下”文本内容。
(3)将获取到的文本与“百度”进行比较,如果两个值一致,证明测试用例执行成功,反之失败。
下面是实战演示的 Python 代码与 Java 代码。
注:首先需要导入 Selenium 包,其次是定义测试方法名、编写测试步骤及断言。
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 == "百度"
复制代码
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_elenium_by_id('su').get_attribute('value')
> assert search == "百度"
E AssertionError: assert '百度一下' == '百度 '
test_demo.py:9 AssertionError
复制代码
搜索微信公众号:TestingStudio 霍格沃兹的干货都很硬核
评论