当前位置:网站首页>Web自动化实战——Selenium4(自动化测试环境的搭建)
Web自动化实战——Selenium4(自动化测试环境的搭建)
2022-07-31 14:44:00 【T_JC】
1. WEB自动化实战—Selenium4
- web自动化测试需求和挑战
- 属于E2的测试,是软件质量保证的最后一道防线
- 点点点:低调,复杂的场合无法测试
- 好的测试,不仅仅模拟用户行为,还要记录、调试网页细节
- 优势:
- 提速增效
- 解放双手
- 技能提示
- 目前主流工具
- Cypress
- Playwright
- Selenium
2. Selenium的优势:
浏览器支持醉的,兼容最好
支持多种编程语言
生态成熟,文档丰富
进行APP自动化测试,事半功倍
pip豆瓣源安装 :pip install xxx包 -i https://pypi.douban.com/simple/
Selenium自动化环境搭建
一键搭建
pip install webdriver-helper
webdriver-helper:
- 自动获取浏览器的版本、操作系统类型
- 自动下载浏览器驱动
- 自动创建和返回WebDriver对象
控制浏览器
with get_webdriver() as driver:
driver.get(“https://baidu.com”)
自动关闭浏览器
3. Selenium自动化实战
web自动化测试三板斧:
- 定位元素
- 交互元素
- 进行断言
3.1 八大定位策略
ID、name、css、xpath、classname、tag_name、link_text
3.2 pytest夹具使用
# 创建一个夹具
@pytest.fixture()
def driver():
driver = get_webdriver() # 启动浏览器
driver.get("http://appfront.huice.com/")
# 前置部分,在测试用例之前执行
# 写登录逻辑
yield driver # yield 生成器的写法
# 后置部分,在测试用例之后执行
print('关闭浏览器')
driver.quit()
浏览器启动的次数 = 测试用例的个数
如何避免,重复启动浏览器(每一次启动大概耗时3秒)
pytest夹具范围:
五种范围:
function:默认,每个用例执行一次
class:每个类执行一次
module:每个文件执行一次
package:每个包执行一次
session:整个测试过程只执行一次
写法:@pytest.fixture(scope=“session”)
4. 解决登录的问题
- 自动登录
- 不必重复登录
5. 解决不登录的问题
- 不重启浏览器
- 保持不登录的状态,以便对登录进行测试
网站的登录状态,是如何保持的?
cookie
selenium可以清除cookies :driver.delete_all_cookies() 清除cookie
6. POM设计模式
- pytest解决了用例层面的问题
- pom解决了页面层面的问题
Page Object Model:页面对象 设计模式
- 使用 对象 代表 页面
- 使用 对象 的 属性 代表 页面的元素
- 使用 对象 的 方法 代表 页面的操作
定义过程:
- 定义 BasePage (抽象类)
- 定义 Page (页面类)
- 定义元素的交互 (对象方法)
使用过程:
- 打开页面,实例化Page
- 调用Page方法,完成交互
边栏推荐
- jvm 一之 类加载器
- 深入浅出边缘云 | 4. 生命周期管理
- 高等数学——常用不定积分公式
- leetcode: 485. Maximum number of consecutive 1s
- Uniapp WeChat small application reference standard components
- Analysis of the startup source code of hyperf (2) - how the request reaches the controller
- 自适应控制——仿真实验三 用超稳定性理论设计模型参考自适应系统
- redhat/openssl生成自签ca证书并使用
- ASP.NET Core 产生连续 Guid
- OpenShift 4 - 用 Operator 部署 Redis 集群
猜你喜欢

小试牛刀:Go 反射帮我把 Excel 转成 Struct

自适应控制——仿真实验二 用Narendra方案设计模型参考自适应系统

组合系列--有排列就有组合

纸质说明书秒变3D动画,斯坦福大学吴佳俊最新研究,入选ECCV 2022

使用NVM进行node版本切换管理

MySQL 23道经典面试吊打面试官

Comparison of Optical Motion Capture and UWB Positioning Technology in Multi-agent Cooperative Control Research

以后面试官问你 为啥不建议使用Select *,请你大声回答他!

OAuth2:使用JWT令牌

UnityShader入门学习(二)——渲染流水线
随机推荐
新款现代帕里斯帝预售开启,安全、舒适一个不落
使用NVM进行node版本切换管理
Recommendation System - Recall Phase - 2013: DSSM (Twin Towers Model) [Embedding (Semantic Vector) Recall] [Microsoft]
[Blue Bridge Cup Trial Question 46] Scratch Magnet Game Children's Programming Scratch Blue Bridge Cup Trial Question Explanation
Shang Silicon Valley-JVM-Memory and Garbage Collection (P1~P203)
蔚来杯2022牛客暑期多校训练营4
OAuth2:微服务权限校验Session共享
最近很火的国产接口神器Apipost体验
使用 Chainlink Keepers 实现智能合约函数的自动化执行
Shell script classic case: detecting whether a batch of hosts is alive
redhat/openssl generates a self-signed ca certificate and uses it
The recently popular domestic interface artifact Apipost experience
Groupid(artifact id)
IDEA连接MySQL数据库并使用数据
Resnet&API
网线RJ45接口针脚[通俗易懂]
leetcode:485.最大连续 1 的个数
高等数学——常用不定积分公式
谷歌CTS测试(cta测试)
小试牛刀:Go 反射帮我把 Excel 转成 Struct