一.文件夹、文件命名规范
1.page_element、page_handle、test_dir文件下基于功能模块新建二级文件夹,且一一对应;
范例:page_element--editor--home--templatepage_handle--editor--home--templatetest_dir--editor--home--template
2.二级文件下最多新建一级子文件夹,即三级文件夹下多个文件;
范例:page_element--editoreditor_page.pyXXX.py--homeaccount_info_page.pyyyy.py
3.pageelement中文件以:页面或者模块页面类型.py命名,
例如:
工作台页面:myapp_page.py;工作台分享管理设置弹窗:myapp_manage_dialog.py;
4.page_handle中文件以:页面或者模块_handle.py命名,
例如:
工作台页面:myapp_handle.py;工作台分享管理设置弹窗:myapp_manage_handle.py;
4.testdir 文件夹中测试用例文件以:test模块_cases.py命名
例如:工作台的相关用例:test_myapp_cases.py
二.元素定位、元素操作封装类、方法命名规范
1.元素定位封装类、方法命名规范:基于一个页面=一个类,页面中的元素=类中的属性
1-1.类的命名规范:页面或者模块名称+页面类型;
class MyappPage:"""例如工作台页面"""passclass MyappManageDialog:"""工作台分享管理设置弹窗"""pass
1-2.属性的命名规范:属性类型+元素类型;
edit_btn = xxxx # 例如编辑按钮search_input = xxx # 例如搜索文本框
(ps:当页面元素特别多,属性命名可加上页面位置方向,例如编辑器上方的保存按钮:top_save_btn = xxx)
2.元素操作封装类、方法命名规范:基于一个页面=一个类,页面中的元素操作=类中的实例方法
2-1.类的命名规范:页面或者模块名称+Handle;
class MyappHandle:"""例如工作台页面"""pass
2-2.实例方法的命名规范:动作+具体元素;
def click_edit_btn:"""例如点击编辑按钮"""passdef input_search_text:"""搜索框输入文本"""pass
三.用例集、用例名称命名规范
基于测试用例文件中,一个用例集=一个类,一个类的方法=一条用例
1.用例集命名规范:Test+页面某个功能;
class TestTemplateSearch:"""模板市场的模板搜索"""passclass TestTemplateCreation:"""模板新建"""pass
2.测试用例命名规范:test_页面某个功能,
def test_editor_create:"""新建作品"""pass
四.测试用例编写规范
1.每个用例集必须要有所属模块和用例集名称;
装饰函数@pytest.mark.{“模块”}
装饰函数@allure.feature(“{用例集名称}”)
@allure.feature("模板创建")@pytest.mark.templateclass TestTemplateCreate:pass
2.每个用例(方法)必须要有用例名称、用例步骤描述
装饰函数@allure.title(“xxxx”)
注释-→stpeds:1.xxx>2.yyyy>3.zzzz
@allure.feature("编辑器功能")@pytest.mark.editorclass TestEditorH5:@allure.title("保存发布h5作品")def test_h5_save_and_publish(self, browser):"""steps:1.进入兔展工作台>2.点击编辑作品>3.点击保存作品>4.点击发布作品"""pass
五.其他
1.由于poium的新类 NewPageElement,无法支持动态定位一组元素,故需要把page_objects.py文件下第116行代码注释,PageElements类可支持定位一组元素
注释代码:
# warnings.warn("use NewPageElement instead", DeprecationWarning, stacklevel=2)
