自动化优化流程

发布时间:2024-11-23 18:07

用数据驱动决策,优化工作流程 #生活技巧# #组织技巧# #工作流程优化#

自动化流程

"""python自动化""" import time import random from selenium.webdriver.common.by import By from pages.home import HomePage from pages.login import LoginPage def gen_class_name(): """随机生成课程名称, 字母,生成10长度的字母。 aacdeyualp """ name = '' for i in range(10): letter = random.choice('abcdefghijklmnopqrstuvwxyz') name += letter return name + str(int(time.time())) class TestAddClass: # 测试类可以不创建吗?可以 # pytest当中,测试用例函数可以写在类下面,也可以单独存在 def test_add_success(self, get_driver): """运行成功的测试用例. 测试步骤: 1、打开浏览器 2、登录老师账号 前置条件 3、点击创建/加入课程 4、点击创建课程(课程名称,动态生成,每次都不一样的课程名) 5、输入课堂名称其他数据 6、点击创建 7、出现已经创建好的课程。 8、assert, 如果在首页上出现了课程名称 # 要不要校验数据库 # ui 测试 ui界面显示是否正常。 """ # 获取浏览器 driver = get_driver # 登录老师账号, 直接从 LoginPage 当中调用 login 方法 login_page = LoginPage(driver) home_page = HomePage(driver) login_page.load().login("wagyu2016@163.com", "admin123456") # 进入首页 # 先获取所有的课程内容判断新的课程标题是否已经存在 # Lily: 加一个时间戳 driver.find_element(By.XPATH, "//span[contains(text(),'+ 创建/加入课程')]").click() driver.find_element(By.XPATH, "//a[@id='addClass']").click() # 输入课程名称 # 去随机生成一个课程名称 class_name = gen_class_name() driver.find_element(By.XPATH, "//input[@placeholder='请输入课程名称']").send_keys(class_name) time.sleep(2) # 点击学期选择下拉框 driver.find_element(By.CSS_SELECTOR, '.yearselbox').click() # 点击自己想要的选项 driver.find_element(By.XPATH, '//li[text()="2014-2015"]').click() driver.find_element(By.CSS_SELECTOR, '.pop-btns > .sure').click() # 断言 # 能不能找到课程 assert driver.find_element(By.XPATH, f'//a[text()="{class_name}"]') time.sleep(2)

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071

===============================================================

前置条件

import pytest from selenium import webdriver from pages.login import LoginPage @pytest.fixture() def get_driver(): """启动浏览器""" driver = webdriver.Chrome() driver.implicitly_wait(10) driver.maximize_window() yield driver driver.quit() @pytest.fixture() def teacher_login(get_driver): login_page = LoginPage(get_driver) login_page.load().login("wa222222163.com", "a22222256") return get_driver # 没有后置

1234567891011121314151617181920212223

=================================================================

随机生成字符

import time import random def gen_class_name(): """随机生成课程名称, 字母,生成10长度的字母。 aacdeyualp """ name = '' for i in range(10): letter = random.choice('abcdefghijklmnopqrstuvwxyz') name += letter return name + str(int(time.time())) if __name__ == "__main__": print(gen_class_name())

123456789101112131415161718

========================================

PO优化自动化流程

pages模块中的home.py文件

from selenium.webdriver.common.by import By from common.basepage import BasePage class HomePage(BasePage): url = 'https://v4.ketangpai.com/Main/index.html' # 获取用户头像 avatar_locator = (By.XPATH, '//*[@class="avatar"]') # 新建课程/加入课程 new_class_locator = (By.XPATH, "//span[contains(text(),'+ 创建/加入课程')]") # 创建课程 create_class_locator = (By.XPATH, "//a[@id='addClass']") # 课程名称输入框 class_input_locator = (By.XPATH, "//input[@placeholder='请输入课程名称']") # 学期选择框 term_selector_locator = (By.CSS_SELECTOR, '.yearselbox') # 确认创建按钮 create_confirm_locator = (By.CSS_SELECTOR, '.pop-btns > .sure') # def __init__(self, driver): # self.driver = driver def load(self): self.driver.get(self.url) return self def get_username(self): """获取头像中的登录用户名 TODO: 封装获取属性属性""" user_elem = self.driver.find_element(*self.avatar_locator) return user_elem.get_attribute('title') def add_class(self, name, term="2014-2015"): """添加课程""" driver = self.driver self.click(self.new_class_locator) self.click(self.create_class_locator) driver.find_element(*self.new_class_locator).click() driver.find_element(*self.create_class_locator).click() # 输入课程名称 # 去随机生成一个课程名称 driver.find_element(*self.class_input_locator).send_keys(name) # 点击学期选择下拉框 driver.find_element(*self.term_selector_locator).click() # 点击自己想要的选项 driver.find_element(By.XPATH, f'//li[text()="{term}"]').click() # 点击创建 driver.find_element(*self.create_confirm_locator).click() return self def get_class(self, name): """根据课程名称定位元素""" el = self.driver.find_element(By.XPATH, f'//*[text()="{name}"]') return el

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758

================================================

PO优化的成果

"""python自动化""" from pages.home import HomePage from common import helper class TestAddClass: def test_add_success(self, teacher_login): """运行成功的测试用例. """ # 获取浏览器 driver = teacher_login home_page = HomePage(driver) # 添加课程 class_name = helper.gen_class_name() home_page.add_class(class_name, term='2020-2021') # 断言 assert home_page.get_class(class_name)

1234567891011121314151617181920212223

网址:自动化优化流程 https://www.yuejiaxmz.com/news/view/216554

相关内容

流程自动化
业务流程自动化的5个优点
流程自动化方案
自动化工作流程
聊一聊流程自动化
自动化流程梳理 流程图模板
自动化流程总结
采购流程自动化
流程自动化系统
自动化流程是什么

随便看看