汝阳县建设局网站中企动力为何负面评价那么多
汝阳县建设局网站,中企动力为何负面评价那么多,家乡网页设计教程,网站的访问量统计怎么做关键字驱动框架#xff1a;将每一条测试用例分成四个不同的部分
测试步骤#xff08;Test Step#xff09;#xff1a;一个测试步骤的描述或者是测试对象的一个操作说明测试步骤中的对象#xff08;Test Object#xff09;#xff1a;指页面的对象或者元素对象执行的动…关键字驱动框架将每一条测试用例分成四个不同的部分
测试步骤Test Step一个测试步骤的描述或者是测试对象的一个操作说明测试步骤中的对象Test Object指页面的对象或者元素对象执行的动作Action页面操作的动作执行对象所需要的数据Test Data任何对象操作时所需要的值
例如登录163邮箱步骤分为
打开浏览器输入url切换iframe输入用户名输入密码点击登录
1创建excel文件使用excel文件来存放测试用例及测试步骤excel内容如下
login的sheet页中描述了测试步骤测试步骤中的对象可以分为测试对象的定位方式以及定位方式表达值 从excel文件中可以看到每一个步骤我们要执行的动作是什么例如打开浏览器我们需要定义一个open_browse方法再读取excel文件的内容时程序才知道要怎么做。因此我们需要为每个执行动作定义一个方法。
再在excel中增加一个sheet页从来存放测试用例如index 2搭建项目框架只是简单的实现关键字驱动需要的其他内容可以再往框架中加。
项目结构目录 3接下来我们来看一下各个文件夹下py文件的内容
首先是Util文件夹下封装的查找元素控件的工具类find_ele.py文件
# find_ele.py
from selenium.webdriver.support.wait import WebDriverWaitdef find_element(driver, location_type, location_express):查找控件元素try:driver WebDriverWait(driver, 20).until(lambda driver:driver.find_element(location_type, location_express))return driverexcept Exception as e:raise e
接下来我们就要在Util文件下封装读取excel文件内容方法的excel_parse.py文件再封装该方法前需要在Setting文件下创建Config.py文件用来获取文件路径。
Config.py文件内容如下
# Config.py
import osBase_Dir os.path.dirname(os.path.dirname(os.path.abspath(__file__)))# 测试数据文件
Test_Data_Path os.path.join(Base_Dir, TestData)
excel_parse.py文件内容如下
# excel_parse.py
from Setting.Config import Test_Data_Path
from openpyxl import load_workbookclass ExcelParse:def __init__(self):self.workbook Noneself.sheet Nonedef load_workbook(self, filename):加载文件try:self.workbook load_workbook(filename)except Exception as e:raise edef get_sheet(self, sheetname):获取sheet页try:self.sheet self.workbook[sheetname]except Exception as e:raise edef get_row_num(self):返回行数return self.sheet.max_rowdef get_col_num(self):返回列数return self.sheet.max_columndef get_cell_value(self, row, col):返回某一单元格的值return self.sheet.cell(rowrow, columncol).valuedef get_row_value(self, row):返回某一行的值try:col self.get_col_num()data []for i in range(1, col1):data.append(self.get_cell_value(row, i))return dataexcept Exception as e:raise edef write_cell(self, row, col, filename, content):单元格赋值try:self.sheet.cell(rowrow, columncol, valuecontent)self.workbook.save(filename)except Exception as e:raise eif __name__ __main__:execl ExcelParse()execl.load_workbook(Test_Data_Path /login.xlsx)execl.get_sheet(login)res execl.get_row_value(2)print(res)然后就需要定义测试步骤中的执行动作的方法在Util文件夹下创建elementAction.py文件内容如下
# elementAction.py
from selenium import webdriver
from Util.find_ele import find_elementdriver Nonedef open_browse(browser_name, *args):打开浏览器global drivertry:if browser_name.lower() chrome:driver webdriver.Chrome()elif browser_name.lower() firefox:driver webdriver.Firefox()else:driver webdriver.Ie()except Exception as e:raise edef get_url(url, *args):打开网址try:driver.get(url)except Exception as e:raise edef max_window(*args):窗口最大化try:driver.maximize_window()except Exception as e:raise edef switch_frame(location_type, location_express, *args):切换iframetry:frame find_element(driver, location_type, location_express)driver.switch_to.frame(frame)except Exception as e:raise edef input_content(location_type, location_express, content, *args):定位输入框输入内容try:find_element(driver, location_type, location_express).send_keys(content)except Exception as e:raise edef click(location_type, location_express, *args):点击操作try:find_element(driver, location_type, location_express).click()except Exception as e:raise edef assert_title(title, *args):断言title是否正确try:assert title in driver.titleexcept Exception as e:raise edef close_browse():关闭浏览器driver.quit()if __name__ __main__:open_browse(chrome)get_url(http://mail.163.com)max_window()switch_frame(tag name, iframe)input_content(name, email, test123)input_content(name, password, a123456)click(id, dologin)assert_title(网易)
然后将从excel文件中读取出来的内容拼接成要执行的方法。在Util文件夹下创建common.py文件。
# common.py
def generate_method_express(location_type, location_express, key_word, operate_data):# location_type, location_express为空operate_data不为空if key_word and operate_data and location_type is None and location_express is None:# 判断操作值的类型if isinstance(operate_data, int):method_express key_word ( str(operate_data) )else:method_express key_word ( operate_data )# print(method_express)# 只有关键字有值其他的都为空比如max_window, close_browseelif key_word and operate_data is None and location_type is None and location_express is None:method_express key_word ()# print(method_express)# location_type,location_express不为空operate_data为空elif key_word and location_type and location_express and operate_data is None:method_express key_word ( location_type , location_express )# print(method_express)# 都不为空else:if isinstance(operate_data, int):method_express key_word ( location_type , location_express , str(operate_data) )else:method_express key_word ( location_type , location_express , operate_data )print(method_express)return method_express
之后就是编写执行测试用例了。
在TestScript文件夹下创建test_login.py文件
# test_login.py
from Util.excel_parse import ExcelParse
from Setting.Config import Test_Data_Path
from Util.elementAction import *
from Util.common import generate_method_expressexcel ExcelParse()
# 加载login.xlsx文件
excel.load_workbook(Test_Data_Path /login.xlsx)def test_run():try:# 获取indexsheet页excel.get_sheet(index)# 获取index的行数rows excel.get_row_num()for i in range(2, rows1):# 判断是否要执行is_run excel.get_cell_value(i, 4).lower()if is_run y:# 获取要执行的sheet页名称case_step_sheet excel.get_cell_value(i, 3)# 切换到要执行的sheet页excel.get_sheet(case_step_sheet)# 获取要执行的步骤数step_num excel.get_row_num()# print(step_num)success_num 0 # 记录成功的步骤数for j in range(2, step_num1):# 获取步骤描述step_desc excel.get_cell_value(j, 1)# 定位方式location_type excel.get_cell_value(j, 2)# 定位方式表达值location_express excel.get_cell_value(j, 3)# 执行动作key_word excel.get_cell_value(j, 4)# 执行数据operate_data excel.get_cell_value(j, 5)# print(step_desc, location_type, location_express,key_word, operate_data)method_express generate_method_express(location_type, location_express, key_word, operate_data)try:# 运行函数eval()将字符串str当成有效的表达式来求值并返回计算结果eval(method_express)except Exception as e:raise eelse:success_num 1# 切换sheet页到indexexcel.get_sheet(index)if success_num step_num - 1:# 成功的步骤数等于步骤sheet页的行数减1表示测试执行成功写入成功excel.write_cell(i, 5, Test_Data_Path /login.xlsx, pass)else:# 写入失败excel.write_cell(i, 5, Test_Data_Path /login.xlsx, Fall)except Exception as e:raise
执行test_login.py文件关键字驱动就实现了。这只是简单的实现了关键字驱动了解了关键字驱动应该是什么样的日志、测试报告、执行入口可以自己再添加上面的代码也可以再进行优化。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/88921.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!