测开之路六十六:UI测试平台之处理逻辑和蓝图添加到程序入口

from selenium import webdriver
from common import get_case_id
from common.mongo import Mongo


class Logic(object):
""" 每一个方法名对应前端的操作的元素,方便反射 """

def __init__(self):
self.mongo = Mongo()

def browser(self, params):
""" 打开网页 """
url = params.get('value', None)
self.driver.get(url)

def find(self, params):
""" 查找元素 接收选择器和元素内容"""
selector = params.get('selector', None)
value = params.get('value', None)
return self.driver.find_element(selector, value)

def send(self, element, params):
""" 输入内容 """
text = params.get('value', "默认值")
element.send_keys(text)

def click(self, element, params):
""" 点击操作 """
element.click()

def close(self):
""" 关闭浏览器 """
self.driver.quit()

def execute(self, data):
""" 执行测试,把前端传过来的指令映射为selenium的操作方法 """
# 防止每次调logic都初始化driver,这里放到执行时才初始化driver
self.driver = webdriver.Chrome()
# 取data的commands(所有的元素和操作的dict)
'''
{'casename': 'zz',
'commands':
[
{'command': 'browser', 'parameter': {'value': 'http://127.0.0.1:8000/automation/create'}},
{'command': 'find', 'parameter': {'selector': 'xpath', 'value': '//*[@>
from flask import Flask

from interface import interface
from automation import automation


app = Flask(__name__)

app.register_blueprint(interface)
app.register_blueprint(automation)


if __name__ == '__main__':
app.run(
host="0.0.0.0",
port=8000,
debug=True,
)
 

相关文章: