jmeter响应断言未解决:后面再想办法解决
ddt数据驱动学习:DDT 驱动需要注意测试类需要通过@ddt 装饰器进行装饰
建两个.py文件,一个是读取csv文件内容,一个是测试用例使用ddt驱动.
读取csv文件:
import csv #引入创建的参数文件
def csvReader(filepath):
"""
csv格式参数文件提取方法
:param filepath: csv参数文件的文件路径
:return: 从csv参数文件中提取到的参数
"""
value_row = [] # 保存参数文件中提取的参数的列表
with open(filepath, encoding="utf-8") as w:
reader = csv.reader(w) # 提取参数文件中的参数
next(reader) # 跳过当前首行
for f in reader:
value_row.append(f) # 将f中的参数放入value_row列表的末尾处
return value_row
if __name__ == '__main__':
filepath = r"C:\Users\86187\Desktop\csv.csv"
print(csvReader(filepath))
测试ddt数据驱动:
from selenium import webdriver
import ddt
import unittest
import time
import csvReader
@ddt.ddt # 装饰器,用于声明此装饰器所装饰的类可以使用ddt方法
class RunTestCase(unittest.TestCase):
"""
创建一个用于继承unittest.TestCase框架的测试用例类
"""
def setUp(self):
"""
测试开始前的环境准备工作
:return:
"""
# print("setUp")
self.driver = webdriver.Chrome()
self.driver.get("http://www.baidu.com")
self.driver.maximize_window()
filepath = r"C:\Users\86187\Desktop\csv.csv" #文件路径
data = csvReader.csvReader(filepath)
@ddt.data(*data) # 导入数据
def test_one(self, f): #测试用例
"""
测试主体
:return:
"""
# print("test_one")
try:
self.driver.find_element_by_name("wd").send_keys(f[1])
self.driver.find_element_by_id("su").click()
time.sleep(2)
title = self.driver.title
self.assertEqual(title, f[1]) # 通过实际结果和预期结果进行断言
print("断言成功")
except:
print("断言失败")
print("预期结果:" + f[1] + " 实际结果:" + title)
def tearDown(self):
"""
测试完成之后的环境还原工作
:return:
"""
# print("tearDown")
self.driver.close() # 关闭当前窗口
if __name__ == '__main__':
unittest.main() # 按unittest框架运行