网站上传好了如何做定向wordpress用户注册代码修改哪里
news/
2025/10/7 7:01:49/
文章来源:
网站上传好了如何做定向,wordpress用户注册代码修改哪里,网站的外链接数,天河做网站数据驱动将测试数据和测试行为完全分离#xff0c;实施数据驱动测试步骤如下#xff1a;
A、编写测试脚本#xff0c;脚本需要支持从程序对象、文件或者数据库读入测试数据#xff1b;
B、将测试脚本使用的测试数据存入程序对象、文件或者数据库等外部介质中#xff1b;…数据驱动将测试数据和测试行为完全分离实施数据驱动测试步骤如下
A、编写测试脚本脚本需要支持从程序对象、文件或者数据库读入测试数据
B、将测试脚本使用的测试数据存入程序对象、文件或者数据库等外部介质中
C、运行脚本过程中循环调用存储在外部介质中的测试数据
D、验证所有的测试结果是否符合预期结果
同时在这我也准备了一份软件测试视频教程含接口、自动化、性能等需要的可以直接在下方观看就行希望对你有所帮助【公众号互联网杂货铺】免费领取软件测试资料。 【2024最新版】Python自动化测试15天从入门到精通10个项目实战允许白嫖。。。 1、使用unittest和ddt进行数据驱动
#-*- coding: UTF-8 -*-
from selenium import webdriver
import unittest
import time
import logging
import traceback
import ddt
from selenium.common.exceptions import NoSuchElementException# 初始化日志对象
logging.basicConfig(# 日志级别level logging.INFO,# 日志格式# 时间、代码所在文件名、代码行号、日志级别名字、日志信息format%(asctime)s %(filename)s[line: %(lineno)d] %(levelname)s %(message)s,# 打印日志时间datafomat%a, %d %b %Y %H: %M: %S,# 日志文件存放的目录及日志文件名filenamed:/DataDriverTesting/report.log,# 打开日志文件的方式filemodew
)
ddt.ddt
class TestDemo(unittest.TestCase):def setUp(self):self.driver webdriver.Chrome()ddt.data([u神奇动物在哪里, u叶],[u疯狂动物成, u古德温],[u大话西游之月光宝盒, u周星驰])ddt.unpackdef test_data(self,testdata, expectdata):self.driver.get(http://www.baidu.com)self.driver.implicitly_wait(2)try:self.driver.find_element_by_id(kw).send_keys(testdata)self.driver.find_element_by_id(su).click()time.sleep(3)self.assertTrue(expectdata in self.driver.page_source)except NoSuchElementException,e:logging.error(u查找的页面元素不存在异常堆站信息str(traceback.print_exc()))except Exception, e:logging.error(u未知错误错误信息如下str(traceback.print_exc()))else:logging.info(u搜索%s,期望%s,通过%(testdata, expectdata))def tearDown(self):self.driver.quit()if __name__ __main__:unittest.main()
备注
在unittest中结合ddt实现数据驱动首先是在头部导入ddt模块其次在测试类前声明使用ddt然后在测试方法前使用ddt.data()添加该测试方法需要的测试数据该函数接收一个可迭代的类型以此来判断需要执行的次数多组测试数据间以逗号隔开如果每组数据存在多个需要将每组数据存于列表中最后使用unpack 进行修饰对测试数据解包传参
2、使用JSon存储数据实现数据驱动测试
数据存储test_data_list.json中
[邓肯||蒂姆,乔丹||迈克尔,库里||斯蒂芬,杜兰特||凯文,詹姆斯||勒布朗
]
数据和脚本文件要在同一级目录中
#-*- coding: UTF-8 -*-
from selenium import webdriver
import HTMLTestRunner
import unittest
import time
import logging
import traceback
import ddt
from selenium.common.exceptions import NoSuchElementException# 初始化日志对象
logging.basicConfig(# 日志级别level logging.INFO,# 日志格式# 时间、代码所在文件名、代码行号、日志级别名字、日志信息format%(asctime)s %(filename)s[line: %(lineno)d] %(levelname)s %(message)s,# 打印日志时间datafomat%a, %d %b %Y %H: %M: %S,# 日志文件存放的目录及日志文件名filenamed:/DataDriverTesting/report.log,# 打开日志文件的方式filemodew
)
ddt.ddt
class TestDemo(unittest.TestCase):def setUp(self):self.driver webdriver.Chrome()ddt.file_data(test_data_list)def test_data(self, value):self.driver.get(http://www.baidu.com)self.driver.implicitly_wait(2)testdata, expectdata tuple(value.strip().split(||))self.driver.implicitly_wait(2)try:self.driver.find_element_by_id(kw).send_keys(testdata)self.driver.find_element_by_id(su).click()time.sleep(3)self.assertTrue(expectdata in self.driver.page_source)except NoSuchElementException,e:logging.error(u查找的页面元素不存在异常堆站信息str(traceback.print_exc()))except Exception, e:logging.error(u未知错误错误信息如下str(traceback.print_exc()))else:logging.info(u搜索%s,期望%s,通过%(testdata, expectdata))def tearDown(self):self.driver.quit()if __name__ __main__:suite1 unittest.TestLoader().loadTestsFromTestCase(TestDemo)suite unittest.TestSuite(suite1)filename d:\\test.htmlfp file(filename,wb)runner HTMLTestRunner.HTMLTestRunner(streamfp, titleReport_title, descriptionReport_description)runner.run(suite)
3、使用Excel进行数据驱动测试
安装Python解析Excel 2007及以上版本的模块pip install openpyxl2.3.3
在Pycharm上新建一个工程创建文件测试数据.xlsx文件sheet名为搜索数据表 创建ExcelUtil.py文件
# -*- coding: UTF-8 -*-
from openpyxl import load_workbookclass ParseExcel(object):def __init__(self, excelPath, sheetName):# 将要读取的Excel加载到内存self.wb load_workbook(excelPath)# 通过工作表名获取一个工作表对象self.sheet self.wb.get_sheet_by_name(sheetName)# 获取工作表中存在数据的区域的最大行号self.maxRowNum self.sheet.max_rowdef getDatasFromSheet(self):# 用于存放从工作表中读取出来的数据dataList []# 因为工作表中的第一行是标题行所以需要去掉for line in self.sheet.rows[1:]:# 遍历工作表中数据区域的每一行并将每行中每个单元格的数据去除存于列表tmpList中# 然后再将存放一行数据的列表添加到最终数据列表dataList中tmpList []tmpList.append(line[1].value)tmpList.append(line[2].value)dataList.append(tmpList)return dataListif __name__ __main__:excelPath u测试数据.xlsxsheetName u搜索数据表pe ParseExcel(excelPath, sheetName)for i in pe.getDatasFromSheet():print i[0],i[1]
创建DataDriven.py文件
# -*- coding: UTF-8 -*-
from selenium import webdriver
import unittest
import time
import logging
import traceback
import ddt
from ExcelUtil import ParseExcel
from selenium.common.exceptions import NoSuchElementException# 初始化日志对象
logging.basicConfig(# 日志级别level logging.INFO,# 日志格式# 时间、代码所在文件名、代码行号、日志级别名字、日志信息format%(asctime)s %(filename)s[line: %(lineno)d] %(levelname)s %(message)s,# 打印日志时间datafomat%a, %d %b %Y %H: %M: %S,# 日志文件存放的目录及日志文件名filenamed:/DataDriverTesting/report.log,# 打开日志文件的方式filemodew
)excelPath u测试数据.xlsx
sheetName u搜索数据表
excel ParseExcel(excelPath, sheetName)ddt.ddt
class TestDemo(unittest.TestCase):def setUp(self):self.driver webdriver.Chrome()ddt.data(*excel.getDatasFromSheet())def test_data(self, data):testdata,expectdata tuple(data)self.driver.get(http://www.baidu.com)print testdata,expectdataself.driver.implicitly_wait(2)try:self.driver.find_element_by_id(kw).send_keys(testdata)self.driver.find_element_by_id(su).click()time.sleep(3)self.assertTrue(expectdata in self.driver.page_source)except NoSuchElementException,e:logging.error(u查找的页面元素不存在异常堆站信息str(traceback.print_exc()))except Exception, e:logging.error(u未知错误错误信息如下str(traceback.print_exc()))else:logging.info(u搜索%s,期望%s,通过%(testdata, expectdata))def tearDown(self):self.driver.quit()if __name__ __main__:unittest.main()
备注ddt.data从excel.getDatasFormSheet()方法中接收一个可迭代的数组对象以此来判断需要执行的次数。如果ddt.data()中传的是一个方法方法前需要加型号(*)修饰
4、使用xml进行数据驱动测试
在pycharm中创建一个项目创建TestData.xml文件用于存放测试数据具体内容如下
?xml version1.0 encodingutf-8 ?
bookList typetechnologybooknameSelenium WebDriver实战宝典/nameauthor吴晓华/author/bookbooknameHTTP权威指南/nameauthorHTTP/author/bookbookname探索式软件测试/nameauthor惠特克/author/book
/bookList
创建XmlUtil.py文件用于解析XML文件获取测试数据
# -*- coding: UTF-8 -*-
from xml.etree import ElementTreeclass ParseXML(object):def __init__(self,xmlPath):self.xmlPath xmlPathdef getRoot(self):tree ElementTree.parse(self.xmlPath)return tree.getroot()def findNodeName(self,parentNode,nodeName):nodes parentNode.findall(nodeName)return nodesdef getNodeOfChildText(self, node):# childrenTextDict {i.tag: i.text for i in list(node.iter())[1:]}childrenTextDict {}for i in list(node.iter())[1:]:childrenTextDict[i.tag] i.textreturn childrenTextDictdef getDataFromXml(self):root self.getRoot()books self.findNodeName(root, book)dataList []for book in books:childrenText self.getNodeOfChildText(book)dataList.append(childrenText)return dataList
if __name____main__:xml ParseXML(rTestData)datas xml.getDataFromXml()for i in datas:print i[name],i[author]
创建DataDrivenByXML.py文件用于编写数据驱动测试脚本
# -*- coding: UTF-8 -*-
from selenium import webdriver
import unittest
import time
import os
import logging
import traceback
import ddt
from XmlUtil import ParseXML
from selenium.common.exceptions import NoSuchElementException# 初始化日志对象
logging.basicConfig(# 日志级别level logging.INFO,# 日志格式# 时间、代码所在文件名、代码行号、日志级别名字、日志信息format%(asctime)s %(filename)s[line: %(lineno)d] %(levelname)s %(message)s,# 打印日志时间datafomat%a, %d %b %Y %H: %M: %S,# 日志文件存放的目录及日志文件名filenamed:/DataDriverTesting/report.log,# 打开日志文件的方式filemodew
)# 获取当前文件所在父目录的绝对路径
currentPath os.path.dirname(os.path.abspath(__file__))
# 获取数据文件的绝对路径
dataFilePath os.path.join(currentPath, TestData.xml)
print dataFilePath
# 创建ParseXML实例对象
xml ParseXML(TestData)ddt.ddt
class TestDemo(unittest.TestCase):def setUp(self):self.driver webdriver.Chrome()ddt.data(* xml.getDataFromXml())def test_data(self, data):testdata, expectdata data[name], data[author]self.driver.get(http://www.baidu.com)print testdata,expectdataself.driver.implicitly_wait(2)try:self.driver.find_element_by_id(kw).send_keys(testdata)self.driver.find_element_by_id(su).click()time.sleep(3)self.assertTrue(expectdata in self.driver.page_source)except NoSuchElementException,e:logging.error(u查找的页面元素不存在异常堆站信息str(traceback.print_exc()))except Exception, e:logging.error(u未知错误错误信息如下str(traceback.print_exc()))else:logging.info(u搜索%s,期望%s,通过%(testdata, expectdata))def tearDown(self):self.driver.quit()if __name__ __main__:unittest.main()
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/930045.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!