重庆大渡口营销型网站建设公司哪家专业,网站建设要注意哪些问题,wap网站建设策划方案,《基层建设》在哪个网站收录的web自动化项目框架搭建
1、项目结构 web自动化框架的设计#xff0c;同接口自动化框架一样#xff0c;采用分层设计。
文件或目录说明common常用模块#xff0c;常用的一些函数封装testcases用例模块#xff0c;所有的测试用例test_data用例数据logs日志目录reports报告s…web自动化项目框架搭建
1、项目结构 web自动化框架的设计同接口自动化框架一样采用分层设计。
文件或目录说明common常用模块常用的一些函数封装testcases用例模块所有的测试用例test_data用例数据logs日志目录reports报告settings.py配置main.py项目入口
2、settings.py
import os
# 项目根目录
BASE_DIR os.path.dirname(os.path.abspath(__file__))# 测试用例路径
TEST_CASE_DIR os.path.join(BASE_DIR, testcases)# 项目主机
PROJECT_HOST https://blog.csdn.net# 接口信息
INTERFACE {login: PROJECT_HOST /testleaf
}# 日志配置
LOG_CONFIG {name: project,filename: os.path.join(BASE_DIR, logs, testleaf.log),# encoding: utf-8,# fmt: None,# when: d,# interval: 1,# backup_count: 7,debug: True
}# 测试账户信息
TEST_NORMAL_USERNAME admin
TEST_NORMAL_PASSWORD 8888883、main.py
import pytest
import settingsif __name__ __main__:pytest.main([-s, -v, settings.TEST_CASE_DIR])4、common\log_handler.py
import logging
from logging.handlers import TimedRotatingFileHandlerdef get_logger(name, filename, encodingutf-8, fmtNone, whend, interval1, backup_count7, debugFalse):logger logging.getLogger(name)logger.setLevel(logging.DEBUG)# 文件处理器的等级一般情况一定比控制台要高if debug:file_level logging.DEBUGconsole_level logging.DEBUGelse:file_level logging.WARNINGconsole_level logging.INFOif fmt is None:fmt %(levelname)s %(asctime)s [%(filename)s--line:%(lineno)d]:%(message)sfile_handler TimedRotatingFileHandler(filenamefilename, whenwhen, intervalinterval, backupCountbackup_count, encodingencoding)file_handler.setLevel(file_level)console_handler logging.StreamHandler()console_handler.setLevel(console_level)formatter logging.Formatter(fmtfmt)file_handler.setFormatter(formatter)console_handler.setFormatter(formatter)logger.addHandler(file_handler)logger.addHandler(console_handler)return loggerif __name__ __main__:import settingslog get_logger(**settings.LOG_CONFIG)log.info(我是普通信息)log.warning(我是警告信息)5、testcases\test_login.py
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
import settingsclass TestLogin:def test_login(self):# 1. 打开浏览器with webdriver.Chrome() as driver:# 2. 访问登录页面driver.get(settings.INTERFACE[login])# 3. 登录# 3.1 定位用户名输入框wait WebDriverWait(driver, timeout3)username_input wait.until(EC.visibility_of_element_located((xpath, //input[namephone])))# 3.2 输入用户名username_input.send_keys(settings.TEST_NORMAL_USERNAME)# 3.3 定位密码输入框# 3.4 输入密码# 3.5 定位登录按钮# 3.6 点击登录按钮# 4. 断言登录根据右上角的退出按钮的出现assert wait.until(EC.visibility_of_element_located((xpath, //a[text()退出])))