pythonweb测试_python的web自动化测试
python+web自动化
第一部分:
安装:python,PyCharm编辑器,selemium
官网下载python最新版本
https://www.python.org/downloads/release
https://www.jetbrains.com/pycharm/download/#section=windows
pip install -U selenium
查看安装版本号
python -V
pycharm设置:
https://www.jetbrains.com/help/pycharm/type-hinting-in-product.html
https://blog.csdn.net/xiao_xian_/article/details/88181845?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.add_param_isCf&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.add_param_isCf
pycharm设置autopep8
pip install autopep8
File->Setting->Tools->External Tools->autopep8
Name: AutoPEP8
Program: D:\Python\Python38-32\Scripts\autopep8.exe
Arguments: --in-place --aggressive --aggressive $FilePath$
Working directory: $ProjectFileDir$
Output filters: $FILE_PATH$\:$LINE$\:$COLUMN$\:.*
pycharm设置智能提示:“Power Save Mode”勾选取消
快捷键:
Ctrl + / 行注释/取消行注释
Ctrl + Alt + L 代码格式化
Ctrl + D 复制选定的区域或行
Ctrl + Y 删除选定的行
Ctrl + Numpad+/- 展开/折叠代码块(当前位置的:函数,注释等)
Ctrl + shift + Numpad+/- 展开/折叠所有代码块
代码参考
https://www.cnblogs.com/tepy/p/10786430.html
安装三大浏览器驱动driver
1.chromedriver 下载地址:https://code.google.com/p/chromedriver/downloads/list
2.Firefox的驱动geckodriver 下载地址:https://github.com/mozilla/geckodriver/releases/
3.IE的驱动IEdriver 下载地址:http://www.nuget.org/packages/Selenium.WebDriver.IEDriver/
注意:下载解压后,将chromedriver.exe , geckodriver.exe , Iedriver.exe发到Python的安装目录,例如 D:\python 。
然后再将Python的安装目录添加到系统环境变量的Path下面。
例子:
from selenium import webdriver
from selenium.webdriver.remote.webelement import WebElement
driver = webdriver.Firefox()
driver.get("http://www.baidu.com")
# 隐式等待,设定时间内等待元素出现
driver.implicitly_wait(30)
driver.find_element_by_id("kw").send_keys("pycharm")
driver.find_element_by_id("su").click()
第二部分:
pytest+selenium自动化测试框架
视频地址
https://edu.csdn.net/course/play/27202/357913
pytest和unittest框架对比
pip install pytest
特点:可集成ci环境jenkins,兼容性好,生成html测试报告
pytest可以按照一定的规则找到测试用例
特点:
文件名test_开头或者_test结尾的py文件
以Test开头的类
以test_开头的方法
所有的包必须有init.py文件
测试报告:
使用pytest插件:pytest--html
运行:测试用例路径>pytest -s
D:\Python\PycharmProjects\pythonProject\testCases>pytest
运行方法:
pytest会从我们当前运行目录开始查找所有目录,查找以test_开头或者_test结尾的py文件名且文件中所有以
test_开头的函数和以Test开头的类和类里面以test_开头的方法为测试用例
单独执行某个py文件中的所有测试用例
pytest test.py
执行目录下的所有用例
pytest testCase/
单独执行某个用例函数/类
pytest test_login.py::test_1
pytest test_login.py::TestClass::test_1
运行参数:
-s:显示详细日志信息
-v:更加详细的展示结果信息
--html=report.html:生成测试报告
-n NUM:多进程运行
-m:运行执行标记的测试用例
-k:关键字参数,执行带关键字的测试用例
-q:显示测试结果信息
fixture:
详细介绍可以参考路径https://www.cnblogs.com/huizaia/p/10331469.html
与python自带的unittest测试框架中的setup,teardown类似,pytest提供fixture函数
用以在测试执行前和执行后进行必要的准备和清理工作。但是fixture函数对setup和teardown进行了很大的改进
@pytest.fixture(scope='Function,class,module,session',auto=False)
@pytest.fixture()
scope参数:执行范围
Function,每个test都运行,默认是function的scope
class,每个class的所有test,只允许一次
module,每个module的所有test,只允许一次
session,每个session,只运行一次
自定义mark:
通过@pytest.mark控制需要执行哪些feature的test
在pytest当中,先给用例打标记,在运行时,通过标记名来过滤测试用例
注册标记:创建一个pytest.ini文件:写入[pytest]markers=me:yuo
使用标记:在测试用例的前面加上:@pytest.mark.已注册标签名
skip
跳过用例mark:
skip和skipif标记,测试会直接跳过,而不会被执行
@pytest.mark.skipif(condition)
使用标记:在测试用例的前面加上:@pytest.mark.已注册标签名
参数化
允许在测试函数或类中定义多组参数
传入单个参数:
@pytest.mark.parametrize('参数名',lists)
传入两个参数:
@pytest.mark.parametrize('参数1','参数2',.[(参数1_data[0],参数2_data[0]),(参数1_data[1],参数2_data[1])])
@pytest.mark.parametrize('user,pwd', data())
conftest.py
配置里可以实现数据共享,不需要import就能自动找到一些配置
conftest文件实际应用需要结果fxture来使用,fixture中参数scope也使用conftest中fixture的特性
conftest.py配置需要注意一下点:
conftest.py配置脚本名称是固定的,不能该名称
conftest.py与允许的用例要在同一个pakage下,名且有_init_.py文件
不需要import导入conftest.py,pytest用例会自动查找
案例
fixture的举例,module仅运行一次
import pytest
@pytest.fixture(scope='module')
def test_1():
a = 'test'
b = '1'
print("test_1被调用执行")
return a, b
def test_2(test_1):
print("\ntest2 :" + test_1[0] + "_" + test_1[1])
class Test3:
def test_3(self, test_1):
print("test3 :" + test_1[0] + "_" + test_1[1])
def test_4(self, test_1):
print("test4 :" + test_1[0] + "_" + test_1[1])
if __name__ == '__main__':
pytest.main(['-s', 'test_login.py'])
skip和参数化举例:
import pytest
def test_1():
print("test 1")
num1 = 1
num2 = 2
@pytest.mark.skipif(num1 < num2, reason='跳过')
def test_2():
print("test 2")
def test_3():
print("test 3")
def data():
return[('123', '123'), ('456', '456'), ('789', '789')]
@pytest.mark.parametrize('user,pwd', data())
def test_4(user, pwd):
print(user + pwd)
pagefactory:待更新...
pythonweb测试_python的web自动化测试相关推荐
- 【测试开发】web 自动化测试 --- selenium4
目录 1. 什么是自动化为什么要做自动化 2. 为什么选择selenium作为我使用的web自动化工具 3. 什么是驱动?驱动的工作原理是什么 5. 第一个自动化程序演示 6. selenium基本语 ...
- python web自动化测试实验报告_Python:web自动化测试
用selenium包. # -*- coding: utf-8 -*- # 说明: 当前的浏览器驱动用的是edge浏览器. # 需要下载浏览器驱动,并把它的路径添加到环境变量 from seleniu ...
- java web典型模块大全_python+selenium基于po模式的web自动化测试框架
一.什么是Selenium? Selenium是一个基于浏览器的自动化测试工具,它提供了一种跨平台.跨浏览器的端到端的web自动化解决方案.Selenium主要包括三部分:Selenium IDE.S ...
- Web自动化测试 (Selenium+Python)测试环境搭建
目录 一.什么样的项目适合做Web自动化测试 二.Python+Selenium环境搭建 三.八大元素定位 一.什么样的项目适合做Web自动化测试 1.软件需求不会频繁的变更 2.项目周期比较长 3. ...
- 全面提升测试效率,一键实现多文件、多Sheet的WEB自动化测试!
目录 前言: 设计目标 框架结构 实现 总结 前言: 在WEB开发中,自动化测试框架是一个不可或缺的组件.封装一个既能支持多文件,又能支持多Sheet的WEB自动化框架,将会极大地提升我们的开发效率. ...
- 大厂年薪43w测试开发手把手教你搭建Web自动化测试框架,超详细
测试框架的设计有两种思路,一种是自底向上,从脚本逐步演变完善成框架,这种适合新手了解框架的演变过程.另一种则是自顶向下,直接设计框架结构和选取各种问题的解决方案,这种适合有较多框架事件经验的人.本章和 ...
- Web网页测试全流程解析论Web自动化测试
1.功能测试 web网页测试中的功能测试,主要测试网页中的所有链接.数据库连接.用于在网页中提交或获取用户信息的表单.Cookie 测试等. (1)查看所有链接: ·测试从所有页面到被测特定域的传出链 ...
- 开源 软件测试自动化工具,开源Web自动化测试工具Selenium IDE
Selenium IDE(也有简写SIDE的)是一款开源的Web自动化测试工具,支持测试用例的录制与回放. 只要在浏览器里装一下插件,就可以开始使用,简直是"开箱即用".我们相信测 ...
- 基于python的界面自动化测试-基于Selenium+Python的web自动化测试框架
一.什么是Selenium? Selenium是一个基于浏览器的自动化测试工具,它提供了一种跨平台.跨浏览器的端到端的web自动化解决方案.Selenium主要包括三部分:Selenium IDE.S ...
- web自动化测试---概述
最早的时候是做功能测试,web都是自己手工点击看看有没问题,没有系统的进行测试,更别说自动化测试了,那是一段不堪回首的往事,就是因为这,很多问题都流出去了,这是作为测试人员的一大失职,痛定思痛,开始学 ...
最新文章
- 如何关闭华为自动杀进程_手机自动扣费该如何删除,教你正确关闭,我们要知道!...
- java丑数算法_LintCode Java算法练习(4)-----丑数II
- 详解神秘Linux内核
- 系统学习机器学习之决策树
- 为什么我启动哪一个tomcat都是启动同一个tomcat(tomcat7)
- ssm框架搭建和整合流程
- SAP Netweaver ECATT介绍
- [Java基础]抽象类和接口名作为形参和返回值
- python删除文件夹下文件夹_python删除指定文件夹下文件和文件夹的方法详解
- win10 2004更新完成之后出现进不去系统的问题
- python json.dumps() 中文乱码问题
- swfobject.js 简介
- 2022年道路运输企业安全生产管理人员报名考试及道路运输企业安全生产管理人员模拟试题
- 如鹏java学习进程 模拟小球弹跳
- 深度探索C++对象模型-Data语义学
- Apex-逃离塔科夫机器码彻底解决(年度最新讲解可观看)
- 详解GAMIT/GLOBK软件使用
- 转使用chrome命令行:disable
- 学习操作系统,都有哪些硬核网站?
- Mixlab推荐:一起开启 AI+X 微软认证未来创变者计划