项目介绍
- 项目简介
- 功能架构
前端功能
后端功能
- 技术架构
负载均衡
消息列队
应用场景
测试功能模块
- 待测功能模块
文章发布流程
- 新建文章(自媒体端)
- 审核文章(后台管理系统)
- 查看文章(APP端)
UI自动化测试
- Selenium Grid介绍-实现分布式执行测试用例
- 1.1 Selenium Grid工作原理
- Selenium Grid环境部署
- 安装包地址
- 启动主控服务-Hub
1)进入命令行窗口 cmd
2)切换到【selenium-server-standalone-3.141.59.jar】文件所在的路径,输入以下命令启动Hub服务:
java -jar selenium-server-standalone-3.141.59.jar -role hub -maxSession 10 -port 4444
3)打开浏览器验证Hub启动成功与否
http://localhost:4444/
4)启动Node节点
java -jar selenium-server-standalone-3.141.59.jar -role node -port 5555 -hub http://192.168.146.1:4444/grid/register -maxSession 5 -browser browserName=chrome,seleniumProtocol=WebDriver,maxInstances=5,platform=WINDOWS,version=98.0.4758.82
5)检查注册结果
- Selenium Grid使用
- 3.1 实例化driver对象
3.1.1)获取driver
# 1. 使用chrom浏览器
# 2. 打开百度并搜索python关键字
# 3. 暂停3秒,关闭浏览器
#导包
from selenium import webdriver
from time import sleep
#获取driver
# chrome_driver=r"D:\Anaconda\Lib\site-packages\selenium\chromedriver.exe"
# driver=webdriver.Chrome(executable_path=chrome_driver)
#重点获取driver
cap={
"browserName": "chrome",
"version": "",
"platfrom": "MAC"
}
driver=webdriver.Remote("http://127.0.0.1:4444/wd/hub", cap)#选中Remote按住ctrl enter
#打开百度
driver.get("http://www.baidu.com")
#输入关键字
driver.find_element_by_id("kw").send_keys("python")
#点击搜索按钮
driver.find_element_by_id("su").click()
#暂停3秒 关闭浏览器
sleep(3)
driver.quit()
3.1.2)示例
1、多线程
2、浏览器启动参数
"""
目标:
1. 多线程应用
2. 不同浏览器启动参数
"""
from selenium import webdriver
chrome=webdriver.DesiredCapabilities.CHROME.copy()
print(chrome)
chrome['platform']="WINDOW"
print(chrome)
3、
首先启动Hub节点
再启动两个node节点
1)启动浏览器为chrome
java -jar selenium-server-standalone-3.141.59.jar -role node -port 5555 -hub http://192.168.146.1:4444/grid/register -maxSession 5 -browser browserName=chrome,seleniumProtocol=WebDriver,maxInstances=5,platform=WINDOWS,version=98.0.4758.82
2)启动浏览器为firefox
java -jar selenium-server-standalone-3.141.59.jar -role node -port 5556 -hub http://192.168.146.1:4444/grid/register -maxSession 5 -browser browserName=firefox,seleniumProtocol=WebDriver,maxInstances=5,platform=WINDOWS
开始黑马头条UI自动化测试
1. UI自动化测试流程
1.1 抽取自动化用例的规则
1.2 编写自媒体测试用例
2. 项目搭建
本机环境搭建
目录结构
base
例如将自媒体测试用例登录模块的输入用户名和密码方法放到base文件夹里的base.py里
base.py 自媒体登录业务所需公共方法
查找元素封装重点
输入方法封装步骤
获取元素文本注意return
代码实现
from selenium.webdriver.support.wait import WebDriverWait
class Base:
# 初始化
def __init__(self,driver):
""" 解决driver """
# 获取浏览器驱动
self.driver = driver
#查找 方法封装(以下三种方法的公共方法)
def base_find(self,loc,timeout=30,poll=0.5):
#为了在查找过程中避免数据加载太慢的问题
# 元素定位 -- 元素等待(显式等待) self.driver.find_element(*loc) 优点:返回元素、可以修改查找频率
"""
:param loc: 格式为列表或元组,内容:元素定位信息使用By类
:param timeout:查找元素超时时间,默认30秒
:param poll:查找元素频率,默认0.5秒
:return:元素
"""
element= WebDriverWait(self.driver,timeout=timeout,poll_frequency=poll).until(lambda x:x.find_element(*loc))
# 输入 方法封装
return element
def base_input(self, loc ,value):
"""
:param loc: 元素的定位信息
:param value: 要输入的值
"""
# 1.获取元素
el=self.base_find(loc)
# 2.清空操作
el.clear()
# 3.输入操作
el.send_keys(value)
#点击 方法封装
def base_click(self,loc):
"""
:param loc:元素定位信息
"""
# 获取元素并点击
self.base_find(loc).click()
#获取 元素文本
def base_get_text(self,loc):
"""
:param loc: 元素的定位信息
:return: 返回元素的文本值
"""
return self.base_find(loc).txt
- page实现
代码
1)page_mp_login.py
from base.base import Base
class PageMpLogin(Base):
#输入用户名
def page_input_username(self):
#输入验证码
def page_input_code(self):
#点击登录按钮
def page_click_login_btn(self):
#获取昵称封装
def page_get_nickname(self):
#组合业务方法
def page_mp_login(self):
- page_in.py
class PageIn:
def __init__(self,driver):
self.driver=driver
# 获取PageMpLogin对象
def page_get_PageMpLogin(self):
return PageMpLogin(self.driver)
版权声明:本文为qq_43431863原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。