> 文章列表 > Python自动化测试 环境搭建 详解

Python自动化测试 环境搭建 详解

Python自动化测试 环境搭建 详解

一、安装Python环境:

Python环境目前已被大部分主流操作系统所支持,比如在Linux、Mac、Unix等系统上就自带了Python环境,但在Windows系统上目前还需要自己安装。

1、下载Python

Python下载地址:https://www.python.org/downloads

在这里插入图片描述

根据自己的需求下载对应的Python版本,一般进入官网的下载地址默认是最新版。

在这里插入图片描述

点击Downlad Python 3.11.2 按扭后,进入下载页面,选择自己想要安装的版下载

在这里插入图片描述

2、安装Python

点击下载好的python-3.11.3-amd64.exe可执行文件,进入Python安装对话界面,选择各安装项(一般全都选上)、配置安装路径(这里选择安装在D盘的Program Files (x86)目录下,[因为一般Windows系统默认C盘为系统盘,所以将软件安装在其他盘如:D盘])。

在这里插入图片描述

根据提示 Next 直到安装完成后,在命令窗口中输入 python --version 命令测试是否安装成功(注:若提示python命令不存在,先去检查否是有配置path环境变量(环境变量配置方法),如果path中没有配置python可手动将如下python路径添加到path中,或配置了没生效需要重启一下电脑即可)。

python --version
# 或
py --version
Python 3.11.3   # 显示版本号则表示安装成功!# 输入python命令 或 py命令 按回车键 
python# 进入如下python命令模式
Python 3.11.3 (tags/v3.11.3:db3ff76, April 16 2023, 11:26:23) [MSC v.1929 64 bit (AMD64)]  on win64 Type "help", "copyright", "credits" or "license" for more information.
>>>

二、安装pip包管理工具:

pip是一个安装Python包的管理工具,很多功能强大、使用方便的Python框架、插件、工具等,都是通过pip来进行安装的,在后面的自动化测试就需要pip来安装selenium自动化集成测试框架。

1、下载pip

注:如果是在Linux系统环境下(只要支持apt-get命令),可以直接执行如下命令安装即可!

apt-get install python-pip

pip下载地址:https://pypi.org/project/pip

在这里插入图片描述

2、安装pip:

将下载的pip-23.0.1.tar.gz文件解压,并在解压后的文件目录中打开命令行工具,执行安装命令(注:应步骤先安装好python环境才能执行成功哦!!)

python setup.py install

在这里插入图片描述

在命令执行结束后,执行如下命令,可查看是否安装成功。

pip --version# 如果显示版本号则表示安装成功! 
pip 23.0.1 from D:\\Program Files (x86)\\Python311\\lib\\site-packages\\pip (python 3.11.3)

三、安装WebDriver浏览器驱动

WebDriver给Python、Ruby、Java、C#等高级语言提供的很多API,支持开发人员使用自己喜欢的编程语言来操作浏览器,尤其是用在自动化测试上,了解更多WebDriver。

现在一般主流浏览器都有对应的WebDriver驱动,根据自己的需求下载即可。

1、下载WebDriver

  • Chrome浏览器驱动下载地址:https://chromedriver.storage.googleapis.com/index.html

  • Edge浏览器驱动下载地址:https://developer.microsoft.com/zh-cn/microsoft-edge/tools/webdriver)

  • Mozilla浏览器驱动下载地址:https://github.com/mozilla/geckodriver/tags

  • Opera浏览器驱动下载地址:https://github.com/operasoftware/operachromiumdriver/tags

  • Safari浏览器驱动下载地址:https://webkit.org/blog/6900/webdriver-support-in-safari-10

可根据自己的需求,选择对应的驱动即可,这里以微软的Edge WebDriver为例(其他也是同样的操作),进入下载页面后,根据对应浏览器版本号,然后下载对应的WebDriver驱动文件。

在这里插入图片描述

2、安装WebDriver

将下载好的developer.exe驱动文件解压后,复制移动到Python解释器所在的文件夹(就是Python的安装目录,和python.exe同级目录)就完成安装了。

在这里插入图片描述

四、安装PyCharm 开发环境:

PyCharm 是一个强大的面向专业开发者的Python IDE(Python集成开发环境、代码编辑器),PyCharm完全理解代码的每个面向。 依靠它的智能代码补全、 实时错误检查和快速修复功能,轻松进行项目导航 等众多辅助功能。

1、下载PyCharm

PyCharm下载地址:https://www.jetbrains.com.cn/pycharm

根据自己的需求,选择对应操作系统下的试用收费版(【免费试用30天】比免费版支持开发语言更多、功能更齐全) 或 免费版(纯Python开发)。

在这里插入图片描述

2、安装PyCharm

点击下载好的pycharm-community-2023.1.exe可执行文件,进入PyCharm安装对话界面,配置安装路径(这里同样也选择安装在D盘的Program Files (x86)目录下),然后选择各安装项如:创建桌面快捷方式、添加环境变量、右键菜单等(一般全都选上),Next 直到安装结束。

在这里插入图片描述

待PyCharm安装完成后,自动会在桌面创建快捷方式,双击PyCharm图标打开如下界面,到此PyCharm就装完成功啦,可根据自己的需要,新建项目、打开项目、从Get拉取代码等操作。

在这里插入图片描述

五、安装Selenium框架:

Selenium是一个用于Web应用程序测试的自动化集成测试操作框架。由thoughtworks 公司推出,它可以直接在浏览器中运行,模拟真实用户对浏览器进行操作。利用selenium,可以驱动浏览器执行特定的动作,比如:点击、下拉等等,还可以获取浏览器当前呈现的页面的源代码。支持包括Microsoft Edge(IE之后)、Google Chrome、Opera、Mozilla Firefox、Apple Safari、等浏览器。

Selenium 官网:https://www.selenium.dev

Selenium GitHub地址:https://github.com/SeleniumHQ/selenium

Selenium API文档:https://www.selenium.dev/selenium/docs/api/py

安装selenium

全局安装:

要查看全局安装的selenium包存放路径(一般同Python的安装路径) 如:D:\\Program Files (x86)\\Python311\\lib\\site-packages\\selenium

pip install selenium# 或(-U 安装或升级)pip install -U selenium

局部安装:

局部安装需要指定安装目录,可通过–target参数来指定

# 格式:
pip install --target=path_name package_name # path_name表示安装的路径, package_name表示安装包名# 例如
pip install --target=./lib selenium # 表示将selenium包安装在,当前目录下的lib文件夹中(./表示当前目录)

六、自动化测试实例

1、创建自动化测试工程项目

在这里插入图片描述

2、测试实例代码 test.py文件内容

# -*- coding: UTF-8 -*-# 导入selenium框架
from selenium import webdriver
from selenium.webdriver.common.by import By
import time# 开启浏览器测试会话,并指定Edge WebDriver驱动路径
driver = webdriver.Edge(r'D:/Program Files (x86)/Python311/msedgedriver.exe')# 指定加载浏览器RUL(要测试的网址)
driver.get("http://www.muguilin.com")# 最大化浏览器窗口
driver.maximize_window()# 强制延时等待1分钟
time.sleep(60)# 退出测试会话
driver.quit()

在命令行工具中,执行如下测试命令

python test.py
# 或
py test.py

执行测试命令后会自动在浏览器中打开指定的网址,效果如下:

在这里插入图片描述

七、扩展

# 引入selenium操作框架
from selenium import webdriver# 开启浏览器会话
driver = webdriver.Edge()# 显示driver对象提供的所有方法关键字
print('driver对象中的关键字:', dir(driver))# 在下面的各个关键字前 加上 driver. 就可以访问对应的方法和常量了,如:driver.get_window_size()'__abstractmethods__', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__enter__', '__eq__', '__exit__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_abc_impl', '_authenticator_id', '_file_detector', '_get_cdp_details', '_is_remote', '_mobile', '_shadowroot_cls', '_switch_to', '_unwrap_value', '_web_element_cls', '_wrap_value', 'add_cookie', 'add_credential', 'add_virtual_authenticator', 'application_cache', 'back', 'bidi_connection', 'capabilities', 'caps', 'close', 'command_executor', 'create_options', 'create_web_element', 'current_url', 'current_window_handle', 'delete_all_cookies', 'delete_cookie', 'delete_network_conditions', 'desired_capabilities', 'error_handler', 'execute', 'execute_async_script', 'execute_cdp_cmd', 'execute_script', 'file_detector', 'file_detector_context', 'find_element', 'find_elements', 'forward', 'fullscreen_window', 'get', 'get_cookie', 'get_cookies', 'get_credentials', 'get_issue_message', 'get_log', 'get_network_conditions', 'get_pinned_scripts', 'get_screenshot_as_base64', 'get_screenshot_as_file', 'get_screenshot_as_png', 'get_sinks', 'get_window_position', 'get_window_rect', 'get_window_size', 'implicitly_wait', 'launch_app', 'log_types', 'maximize_window', 'minimize_window', 'mobile', 'name', 'orientation', 'page_source', 'pin_script', 'pinned_scripts', 'port', 'print_page', 'quit', 'refresh', 'remove_all_credentials', 'remove_credential', 'remove_virtual_authenticator', 'save_screenshot', 'service', 'session_id', 'set_network_conditions', 'set_page_load_timeout', 'set_permissions', 'set_script_timeout', 'set_sink_to_use', 'set_user_verified', 'set_window_position', 'set_window_rect', 'set_window_size', 'start_client', 'start_desktop_mirroring', 'start_session', 'start_tab_mirroring', 'stop_casting', 'stop_client', 'switch_to', 'timeouts', 'title', 'unpin', 'vendor_prefix', 'virtual_authenticator_id', 'window_handles'

1、Selenium常用浏览器操作Api说明

# 引入selenium操作框架
from selenium import webdriver
from selenium.webdriver.common.by import By# 开启浏览器会话
driver = webdriver.Chrome()
# driver = webdriver.Edge()# 加载浏览器RUL
driver.get("http://www.muguilin.com")# 打开新页面
driver.navigate().to("http://www.muguilin.com/blog");# 最大化窗口(有时候执行某些按扭、事件等无效时,就是没有最大化浏览器窗口【不在可视区】导致的!)
driver.maximize_window()  # 最小化窗口
driver.minimize_window()  # 获取当前浏览器窗口可视区宽高
driver.get_window_size()# 获取当前窗口坐标
driver.get_window_position()# 设置窗口大小
driver.set_window_size(1920, 1080)# 刷新页面
driver.refresh()# 前进页面
driver.forward()# 后退页面
driver.back()# 关闭窗口
driver.close()# 关闭浏览器会话(关闭session等)
driver.quit()

2、Selenium常用DOM元素选择、操作Api说明

# 引入selenium操作框架
from selenium import webdriver
from selenium.webdriver.common.by import By# 开启浏览器会话
driver = webdriver.Chrome()# 其他浏览器会话方法
# webdriver.Firefox()
# webdriver.FirefoxProfile()
# webdriver.FirefoxOptions()
# webdriver.Chrome()
# webdriver.ChromeOptions()
# webdriver.Ie()
# webdriver.IeOptions()
# webdriver.Edge()
# webdriver.ChromiumEdge()
# webdriver.EdgeOptions()
# webdriver.Safari()
# webdriver.WebKitGTK()
# webdriver.WebKitGTKOptions()
# webdriver.WPEWebKit()
# webdriver.WPEWebKitOptions()
# webdriver.Remote()
# webdriver.DesiredCapabilities()
# webdriver.ActionChains()
# webdriver.Proxy()
# webdriver.Keys()# 最大化窗口
driver.maximize_window()  # 选择input元素并设置值
username = driver.find_element(by=By.ID, value='username').send_keys('admin')
passwerd = driver.find_element(by=By.ID, value='passwerd').send_keys('123456')# 选择button元素并模拟点击事件
driver.find_element(by=By.ID, value='login-button').click()# 设置取username输入框文本内容
username.sendKeys(“root”);# 获取username输入框文本内容
username.getText();# 清空username输入框文本内容
username.clear();# driver.find_element(By.ID, 'xxxid') // 单个DOM元素选择器方法
# driver.find_elements(By.CLASS_NAME, 'xxxClassName') // 多个DOM元素选择器方法# 其他DOM元素选择器方法
# ID = "id"
# NAME = "name"
# TAG_NAME = "tag name"
# CLASS_NAME = "class name"
# LINK_TEXT = "link text"
# PARTIAL_LINK_TEXT = "partial link text"
# XPATH = "xpath"
# CSS_SELECTOR = "css selector"# 关闭浏览器会话
driver.quit()

AI伪原创