1G免费网站空间,哪个公司建网站最好,怎么做拍卖网站,网站建设的初衷seldom之数据驱动
如果自动化某个功能#xff0c;测试数据不一样而操作步骤是一样的#xff0c;那么就可以使用参数化来节省测试代码。
seldom是我在维护一个Web UI自动化测试框#xff0c;这里跟大家分享seldom参数化的实现。
GitHub#xff1a;GitHub - SeldomQA/seld…
seldom之数据驱动
如果自动化某个功能测试数据不一样而操作步骤是一样的那么就可以使用参数化来节省测试代码。
seldom是我在维护一个Web UI自动化测试框这里跟大家分享seldom参数化的实现。
GitHubGitHub - SeldomQA/seldom: Seldom automation testing framework based on unittest
参数化测试用例
import seldom
from seldom import dataclass BaiduTest(seldom.TestCase):data([(case1, seldom),(case2, selenium),(case3, unittest),])def test_baidu(self, name, keyword):参数化测试用例:param name: 用例名称:param keyword: 搜索关键字self.open(https://www.baidu.com)self.type(id_kw, textkeyword)self.click(css#su)self.assertTitle(keyword_百度搜索)if __name__ __main__:seldom.main()
通过data() 装饰器来参数化测试用例用法非常简单。 将测试数据写代码里面并不是特别优雅的方式尤其在数据比较多长时间。那么通过数据文件管理可能会更加优雅。 读取csv文件
seldom支持csv文件的数据解析为 list。 读取CSV文件中的数据。
import seldom
from seldom import data
from seldom import csv_to_listclass YouTest(seldom.TestCase):data(csv_to_list(filedata.csv, line2))def test_login(self, username, password):a simple test case self.open(https://login.xxx.com)self.type(id_user, textusername)self.type(id_pawd, textpassword)# ...csv_to_list() 方法CSV文件内容转化为list。
file: 指定csv测试文件。line: 指定从第几行开始读取默认第一行。 CSV文件不支持多个Sheet这就要求一个组数据必须创建一个单独JSON文件如果数据多了之后就需要创建许多单独的JSON文件这就不太方便了。 读取excel文件
seldom支持excel文件的数据解析为list。 Excel文件可以创建多个Sheet标签通过不同的标签管理数据。
import seldom
from seldom import data
from seldom import excel_to_listclass YouTest(seldom.TestCase):data(excel_to_list(filedata.xlsx, sheetlogin, line2))def test_login(self, username, password):test loginself.open(https://login.xxx.com)self.type(id_user, textusername)self.type(id_pawd, textpassword)data(csv_to_list(filedata.xlsx, sheetsearch, line2))def test_search(self, keyword):test search self.open(https://www.baidu.com)self.type(id_kw, textkeyword)
excel_to_list() 方法excel文件数据转化为list。
file : 指定excel文件的绝对路径。sheet: 指定excel的标签页默认名称为 Sheet1。line : 指定从第几行开始读取默认第一行。 #### 读取JSON文件
seldom支持将JSON文件的数据解析为 list/dict。
json 文件
{search:[[python],[seldom],[unittest]],login: [[admin, admin123],[guest, guest123]]
}一个JSON文件里面同样可以表示不同格式的的文件。
import seldom
from seldom import data
from seldom import json_to_listclass YouTest(seldom.TestCase):data(json_to_list(filedata.json, keylogin))def test_login(self, username, password):test login self.open(https://login.xxx.com)self.type(id_user, textusername)self.type(id_pawd, textpassword)data(csv_to_list(filedata.json, keysearch))def test_search(self, keyword):test search self.open(https://www.baidu.com)self.type(id_kw, textkeyword)json_to_list() 方法JSON文件数据转化为list/dict。
file : 指定JSON文件的绝对路径。key: 指定字典的key默认不指定解析整个JSON文件。
使用第三方ddt
seldom也支持第三方ddt库。
GitHubGitHub - datadriventests/ddt: Data-Driven Tests for Python Unittest
安装 pip install ddt
创建测试文件test_data.json
{test_data_1: {word: seldom},test_data_2: {word: unittest},test_data_3: {word: selenium}
}
在 seldom 使用ddt。
import seldom
from ddt import ddt, file_dataddt
class YouTest(seldom.TestCase):file_data(test_data.json)def test_case(self, word):a simple test case self.open(https://www.baidu.com)self.type(id_kw, textword)self.click(css#su)self.assertTitle(word _百度搜索)if __name__ __main__:seldom.main()