全球建筑设计网站,wordpress 注册方式,做视频网站用什么云盘好,怎么做品牌推广和宣传1. 框架的可配置性
项目之间的区别#xff1a;
兼容性#xff1a;有些项目只兼容chrome#xff0c;有些只兼容Firefox等元素定位特点#xff1a;有些项目闪现快#xff0c;有的项目很慢有些项目集成Jenkins#xff0c;不需要用python生成allure报告
如果想要我们的框架…1. 框架的可配置性
项目之间的区别
兼容性有些项目只兼容chrome有些只兼容Firefox等元素定位特点有些项目闪现快有的项目很慢有些项目集成Jenkins不需要用python生成allure报告
如果想要我们的框架在运用到一个新项目的时候只需要修改一些配置文件就需要我们框架本身就支持这些配置
2. 如何实现项目配置
三种方式
启动参数配置文件环境变量容器化
2.1 找出配置项
driver_type浏览器类型wait_max最长等待时间wait_poo最短的等待时间频率allure_gen是否生成allure报告allure_show是否自动打开allure报告allure_path指定allure报告的路径其它在代码中写的.....
2.2 保存到配置文件
为了不再生成更多文件导致管理混乱我们可以在pytest.ini文件中新增一个条目用来保存我们的配置 其中pytest条目下是pytest框架的配置uitest下是我们ui自动化测试的配置
2.3 从配置文件中加载配置项
在core目录下创建settings.py
from configparser import SafeConfigParserfrom iniconfig import IniConfigBOOLEAN_STATES SafeConfigParser.BOOLEAN_STATESdef load_uitest_ini(file):ini IniConfig(file) # 加载文件内容ui_ini ini[uitest]d {driver_type: ui_ini.get(driver_type, chrome),wait_max: float(ui_ini.get(wait_max, 10)),wait_poo: float(ui_ini.get(wait_poo, 0.5)),allure_gen: BOOLEAN_STATES[ui_ini.get(allure_gen, true)],allure_show: BOOLEAN_STATES[ui_ini.get(allure_show, true)],allure_path: ui_ini.get(allure_show, report),}return ui_inisettings load_uitest_ini(rD:\pythonProject2\pytest.ini) # 配置项目设置为全局变量
2.4 使用配置
首先from core.settings import settings去导入配置然后使用举例我们的main.py可以修改为
import osimport pytest
from core.settings import settingsif __name__ __main__:os.environ[NO_COLOR] 1pytest.main()reportsettings[allure_path]if settings[allure_gen]:os.system(fallure generate ./temp/allure_results -o {report} --clean) # 生成报告if settings[allure_show]:os.system(fallure open {report}) # 展示报告举例使用配置——浏览器驱动修改conftest.py中的driver
pytest.fixture(scopemodule) # 这里设置scopemodule是因为如果为函数级别的话我们在test_user中第1个用例如果关闭了浏览器第二个用例就需要重新登录
def driver():driver get_webdriver(settings[driver_type])driver.implicitly_wait(5)driver.maximize_window()yield driverdriver.quit()
其它想要配置的选项可以根据以上示例进行添加即可。
3. selenium Grid
Grid组件让selenium支持分布式用于分布式自动化测试通过控制多台机器、多个浏览器并行执行测试用例在测试用例比较多的情况下比较实用。
3.1 本地搭建Grid
配置JDK运行环境自行百度吧最好装高版本的防止和selenium-server不兼容安装好后在命令行使用Java -version验证下
需要安装 Selenium Server 的 Jar 文件下载地址https://www.selenium.dev/downloads/
最后在放置selenium-server的位置打开终端通过命令行启动 Selenium Grid Server
java -jar selenium-server-4.16.1.jar standalone
其中selenium-server-4.16.1.jar是下载的selenium-server的文件名启动后显示如下 会有一个链接点击后在浏览器会显示selenium-grid 图上sessins表示现在的任务数。
3.2 使用Grid中的浏览器
在项目新建a.py
from selenium.webdriver import Chrome, Remote
from selenium.webdriver.chrome.options import Options as ChromeOptionsdriver Remote(command_executorhttp://192.168.3.16:4444/wd/hub,optionsChromeOptions())
driver.get(https://baidu.com)
input()运行后会看到selenium-grid中session变成1