Python Web自动化测试总结,满满的干货 这不赶紧收藏

目录

一、基础准备

1. 环境搭建

2. Selenium 原理

2.1 设置浏览器驱动

2.2 Selenium元素定位

2.3 控制浏览器操作

2.4 webdriver常用方法

2.5 鼠标事件

2.6 键盘事件

2.7 获取断言信息

2.8 设置元素等待

2.9 多窗口切换

2.10 警告框处理

2.11 下拉框选择

2.12 文件上传

2.13 cookie操作

2.14 调用 JavaScript

2.15 窗口截图

2.16 关闭浏览器

二、通用模型

1. 启动测试页面

2. 页面元素查找

3. 生成测试数据

4. 图片验证码破解

4.1 定位验证码图片

4.2 识别图片验证码

5. 读取元素配置文件

5.1 创建配置文件

5.2 读取配置文件

6. 查找元素封装

7. 代码封装

7.1 异常处理

7.2 兼容多浏览器执行

8. 日志记录

8.1 在 console 输出log

8.2 输出log到文件

9.识别验证码

三、PO模型

1. 元素查找

2. 操作层

3. 业务层

4. 测试层

四、数据驱动框架

1. DDT 入门

2. 实践应用

五、关键字模型

1. 构建关键词类

2. 关键词模型测试用例

2.1 读取Excel

2.2 测试用例实践

六、行为驱动模型


一、基础准备

1. 环境搭建

 工欲善其事必先利其器,废话不多说。我们先开始搭建环境。

# 创建项目目录
mkdir WebTesting
# 切换到项目目录下
cd WebTesting
# 安装虚拟环境创建工具
pip install virtualenv
# 创建虚拟环境,env代表虚拟环境的名称,可自行定义
virtualenv env
# 启动虚拟环境,执行下面命令后会发现路径上有 (env) 字样的标识
source env/Scripts/activate
# 查看 (env) 环境下使用的 Python 和 pip 工具版本
ls env/Scripts/
# *** 安装 Selenium ***
pip install selenium
# 退出虚拟环境,退出后路径上的 (env) 字样的标识消失
cd env/Scripts/
deactivate
# 导出环境所需要的模块的清单
pip freeze >> requirements.txt
# 上传 GitHub 时,将下面项忽略上传
echo env/ >> .gitignore
echo WebTesting.iml >> .gitignore
echo __pycache__/ >> .gitignore
# 将代码传至 GitHub
# 本地仓初始化
git init
# 创建本地仓与 GitHub 仓的远程链接
git remote add github 你的github仓的地址
# 将代码添加到暂存区
git add .
# 将代码提交到 
git commit -m "init environment"
# 将代码上传到GitHub仓中
git push github master

初始化环境的项目结构示例如下:

Python Web自动化测试总结,满满的干货 这不赶紧收藏_第1张图片

2. Selenium 原理

   Selenium 是一套完整的 web 应用程序测试系统 ,它包含了测试录制(Selenium IDE)、编写及运行(Selenium Remote Control) 和测试的并行处理(Selenium Grid)。Selenium的核心 Selenium Core基于 JsUnit,完全由 JavaScript 编写,因此可以运行于任何支持 JavaScript 的浏览器上。其基本原理如下:

Python Web自动化测试总结,满满的干货 这不赶紧收藏_第2张图片

2.1 设置浏览器驱动

from selenium import webdriver

driver = webdriver.Firefox()    # Firefox浏览器
driver = webdriver.Chrome()     # Chrome浏览器
driver = webdriver.Ie()         # Ie浏览器
driver = webdriver.Edge()       # Edge浏览器
driver = webdriver.PhantomJS()  # PhantomJS()

2.2 Selenium元素定位


  
  
    
[email protected]
@License :   (C)Copyright 2019-2021, Micro-Circle
@Desc    :   None
"""

from selenium import webdriver
import time

base_url = 'https://www.baidu.com'

browser = webdriver.Chrome('../tools/chromedriver.exe')
browser.get(base_url)

# 1. 清除、输入、点击
browser.find_element_by_id('kw').clear()
browser.find_element_by_id('kw').send_keys('python')
browser.find_element_by_id('su').click()
time.sleep(2)
browser.quit()

(2) 提交

submit()方法用于提交表单,在搜索框后输入关键字后,可用于“回车”模拟。

from selenium import webdriver
import time

base_url = 'https://www.baidu.com'

browser = webdriver.Chrome('../tools/chromedriver.exe')
browser.get(base_url)

# 2.提交
search_text = browser.find_element_by_id('kw')
search_text.send_keys('selenium')
search_text.submit()
time.sleep(3)

(3) 其他常用的方法

size: 返回元素的尺寸。
text: 获取元素的文本。
get_attribute(name): 获得属性值。
is_displayed(): 设置该元素是否用户可见。
from selenium import webdriver
import time

base_url = 'https://www.baidu.com'

browser = webdriver.Chrome('../tools/chromedriver.exe')
browser.get(base_url)

# 3. 其他常用方法
size = browser.find_element_by_id('kw').size

你可能感兴趣的:(自动化测试,Python,web,python,软件测试,测试工程师,单元测试,web)