
什么是数据驱动测试
据驱动测试是一种测试方法,其中测试数据和测试逻辑是分开的,测试数据被存储在外部源中(如Excel表格、JSON文件、数据库等),测试逻辑则独立于测试数据。在测试过程中,测试数据被读取并传递给测试逻辑,以执行相应的测试操作。这种方法使得测试用例的维护更加简单,并且能够轻松地扩展和修改测试数据,而不需要修改测试代码。
数据驱动测试的作用和价值包括:
-
易于维护和扩展: 将测试数据与测试逻辑分离使得测试用例更易于维护。当测试数据需要变更时,只需修改数据源,而不需要修改测试代码本身。
-
提高测试覆盖范围: 数据驱动测试允许在不同的数据集上执行相同的测试逻辑,从而提高了测试用例的覆盖范围。这意味着可以更全面地测试应用程序的各种情况和边界条件。
-
减少重复性工作: 通过重复使用相同的测试逻辑,可以减少编写重复代码的工作量。一旦测试逻辑被编写和验证,就可以在多个测试数据集上重复使用。
-
易于自动化: 数据驱动测试是自动化测试的理想选择。自动化测试工具可以很容易地读取数据源,并将数据传递给测试逻辑,从而实现自动化执行测试用例的目的。
使用场景包括但不限于:
-
接口测试: 对API进行测试时,可以使用数据驱动测试来测试不同的输入和输出组合。
-
网页测试: 在网页自动化测试中,可以使用数据驱动测试来测试不同的用户输入、页面操作等场景。
-
性能测试: 对于性能测试,可以使用数据驱动测试来测试不同的负载情况和并发用户数。
数据驱动测试是一种灵活且高效的测试方法,能够帮助测试团队更好地管理和执行测试用例,提高测试覆盖率和效率,从而保证软件质量。
简单来说,就是测试程序不变,使用不同的测试数据传给测试程序来执行测试用例
下面是一个接口测试中使用数据驱动的案例,测试注册接口:
-
import requests -
# 定义接口测试函数 -
def test_api(endpoint, method, data=None): -
url = f"http://124.223.167.147:8080/{endpoint}" -
if method.lower() == 'get': -
response = requests.get(url) -
elif method.lower() == 'post': -
response = requests.post(url, json=data) -
else: -
print("Invalid HTTP method") -
return -
print(f"Request URL: {url}") -
print(f"HTTP Method: {method}") -
print(f"Response Status Code: {response.status_code}") -
print(f"Response Body: {response.json()}") -
print() -
# 数据驱动测试 -
api_tests = [ -
{'endpoint': 'register/', 'method': 'post','data':{"username":"li221","password":"a1111111112","email":"lily@qq.com"}}, -
{'endpoint': 'register/', 'method': 'POST', 'data': {"username":"andy22","password":"b398d2k2k22","email":"andy@qq.com"}} -
] -
# 执行测试 -
for test_case in api_tests: -
test_api(**test_case)
执行结果:
-
Request URL: http://124.223.167.147:8080/register/ -
HTTP Method: post -
Response Status Code: 200 -
Response Body: {'code': '00', 'userid': 3} -
Request URL: http://124.223.167.147:8080/register/ -
HTTP Method: POST -
Response Status Code: 200 -
Response Body: {'code': '00', 'userid': 4}
下面是数据驱动在网站测试中的案例:
-
from selenium import webdriver -
from selenium.webdriver.common.keys import Keys -
import time -
# 定义网页测试函数 -
def test_web(url, search_query): -
# 请确保已经安装了Chrome浏览器及其对应的webdriver,并将webdriver放在系统PATH中 -
driver = webdriver.Chrome(executable_path="e:\\chromedriver.exe") -
driver.get(url) -
search_box = driver.find_element_by_name('query') -
search_box.send_keys(search_query) -
search_box.send_keys(Keys.RETURN) -
print(f"Page Title: {driver.title}") -
time.sleep(5) -
driver.quit() -
# 数据驱动测试 -
web_tests = [ -
{'url': 'https://www.sogou.com/web', 'search_query': 'Python'}, -
{'url': 'https://www.sogou.com/web', 'search_query': 'Data Driven Testing'} -
] -
# 执行测试 -
for test_case in web_tests: -
test_web(**test_case)
测试结果:分别两次打开浏览器,访问搜狗网站的时候,使用了不同的搜索词进行查询。
总结:
感谢每一个认真阅读我文章的人!!!
作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。


视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。


















