⛅湖州多云12~19℃北京 16/7℃上海 24/16℃广州 31/22℃深圳 31/21℃杭州 22/15℃成都 21/13℃全国天气 »登录
海量收录内容 16内容分类

Python关键字驱动

来源源码时代官网 时间2019-08-28 16:10 篇幅3813 字 · 约 10 分钟

2019/08/28 16:10 分类: 技术交流 浏览:0

工作中在回归测试的时候有很多重复测试的用例,我们希望这部分用例能自动化执行,减少人的重复性劳动。使用传统的全写代码模式进行自动化测试,如果测试人员不懂代码,那么自动化测试就无法开展,对技能要求太高,能不能有这个样的一个工具或框架,部分测试人员不写代码也能进行自动化测试?

我们先来看看之前我们设计的用例。

我们要怎样把上面的用例做成自动化用例?让代码实现如下功能。

如果用以前的用例格式来直接转换成自动化用例能行吗?

我的设计方法 :

我们把上面的这种设计方法叫做关键字驱动,总结以下两点。

从上面设计的用例出发,我们依次来分析需要实现的功能。

我们希望的是自动化框架脚本能读取每一行用例,然后在执行后把测试结果也填好,如果执行出错要有错误信息、错误截图。那我们需要完成以下代码的编写。

主要实现excel表格的读取与写入

class OperateExcel ( builtins.object )

Methods defined here:

__init__ (self, excelfile)

:param excelfile: excle文件路径和名字

get_cell_of_object (self, sheet, coordinate=None, row_no=None, cols_no=None)

:param sheet: sheet对象 :param coordinate: 坐标 :param rowNo: 行号 :param colsNo: 列号 :return: 单元格的对象

get_cell_of_value (self, sheet, coordinate=None, row_no=None, cols_no=None)

:param sheet: sheet对象 :param coordinate:坐标 :param row_no:行号 :param cols_no:列号 :return:cell值

get_cols_number (self, sheet)

:param sheet: sheet对象 :return: sheet中有数据区域的列结束行号

get_column (self, sheet, col_no)

:param sheet: sheet对象 :param col_no: 下标从1开始 :return:

get_row (self, sheet, row_no)

:param sheet: sheet对象 :param rowNo: 从1开始 :return: 返回的是这一行所有的数据内容组成的tuple

get_rows_number (self, sheet)

:param sheet: sheet对象 :return: sheet中有数据区域的行结束行号

get_sheet_by_index (self, sheet_index)

:param sheet_index: sheet的索引号 :return: sheet对象

get_sheet_by_name (self, sheet_name)

:param sheet_name: excel中的sheet名字 :return: sheet对象

get_start_col_number (self, sheet)

:param sheet: sheet对象 :return: sheet中有数据区域的开始的列号

get_start_row_number (self, sheet)

:param sheet: sheet对象 :return: sheet中有数据区域的开始的行号

write_cell (self, sheet, content, coordinate=None, row_no=None, cols_no=None, style=None)

:param sheet: sheet对象 :param content: 写入的内容 :param coordinate: 坐标 :param row_no: 行号 :param cols_no: 列号 :param style: 字体颜色的名字,比如red,green :return:成功返回True

write_cell_current_time (self, sheet, coordinate=None, row_no=None, cols_no=None)

:param sheet: sheet对象 :param coordinate: 坐标 :param row_no: 行号,下标从1开始 :param cols_no: 列号,下标从1开始 :return:成功返回True

主要实现页面元素查找功能的封装和页面校验断言assert的封装

class WebPageAction ( builtins.object )

__init__ (self)

:param browser_name:浏览器的类型 chrome firefox ie

accept_alert (self)

assert_driver_title_is (self, title)

assert_is_text_in_element (self, locator, text, timeout=10)

判断文本是否存在于文本中 :return:

assert_is_value_in_element (self, locator, value, timeout=10)

判断value属性值是否相同 :return:

assert_string_in_pagesource (self, string)

:param string: 断言页面源码是否存在某关键字或关键字字符串 :return: 成功返回True,否则False

back_browser (self)

capture_screen (self)

屏幕截图 :return:

clear (self, locator)

click (self, locator, timeout=10)

点击元素 :return:

close_browser (self)

关闭浏览器 :return:

close_window (self)

关闭当前页面 :return:

find_element (self, locator, timeout=10)

find_elements (self, locator, timeout=10)

input_text (self, locator, text, timeout=10)

写入数据 :return:

maximize_browser (self)

窗口最大化 :return:

open_browser (self, browser_name=None)

open_url (self, url)

打开网址 :return:

random_choice_select (self, loc_1, loc_2='option')

refresh_browser (self)

刷新浏览器 :return:

select_by_index (self, locator, index, timeout=10)

索引定位下拉框选项 :param locator: 定位器,是一个元组 :param index: 接收索引 :param timeout: 最大等待时间 :return:

select_by_text (self, locator, text, timeout=10)

文本信息定位下拉框选项 :param locator: 定位器,是一个元组 :param text: 接收文本信息 :param timeout: 最大等待时间 :return:

select_by_value (self, locator, value, timeout=10)

value值定位下拉框选项 :param locator: 定位器,是一个元组 :param value: value值的接收 :param timeout: 最大等待时间 :return:

select_checkbox (self, locator, timeout=10)

选择单个复选框 :param locator: 定位器,是一个元组 :param timeout: 定位器,是一个元组 :return:

select_checkboxes (self, locator, timeout=10)

全选复选框 :param locator: 定位器,是一个元组 :param timeout: 最大等待时间 :return:

select_radio (self, locator, timeout=10)

单选框选中定位 :param locator: 定位器,是一个元组 :param timeout: 最大等待时间 :return:

sleep_seconds (self, seconds)

通过logging模块记录系统的运行日志

方便excel在调整列或者以后添加列后的维护。

全文完
↑