自动化优化流程
用数据驱动决策,优化工作流程 #生活技巧# #组织技巧# #工作流程优化#
自动化流程
"""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个优点
流程自动化方案
自动化工作流程
聊一聊流程自动化
自动化流程梳理 流程图模板
自动化流程总结
采购流程自动化
流程自动化系统
自动化流程是什么