seleniumbase学习总结4 - 运行测试用例
文章目录
- 1、简介
- 2、常用运行命令
- 2.1、高亮模式运行:
- 2.2、无UI界面的运行
- 2.3、测试浏览器兼容性
- 2.4、所有的登陆共用一个浏览器
- 2.5、图形用户界面测试运行器
- 2.6、在手机的浏览器上运行
- 2.7、使用[n]个线程运行测试
- 2.8、失败重试机制
- 2.9、查看测试报告
- 2.10、覆盖默认的settings.py文件
- 2.11、提取py文件中所有元素的 selector,并将测试用例替换为变量
- 2.12、在远程Selenium网格上运行测试
- 2.13、pytest.ini常用配置
- 2、命令行工具 - 不常用的
- 2.1、创建脚手架
- 2.2、使用样板代码创建新的SBase测试文件。
- 2.3、转换文件语言,转成中文,打印到界面
1、简介
SeleniumBase 的pytest 插件允许您从 CLI(命令行界面)自定义测试运行,它添加了用于设置/启用浏览器类型、仪表板模式、演示模式、无头模式、移动模式、多线程模式、记录器模式、重用的选项-会话模式、代理配置、用户代理配置、浏览器扩展、html 报告模式等。
2、常用运行命令
2.1、高亮模式运行:
- pytest test_专家管理.py --demo
- pytest my_first_test.py --demo --demo-sleep=1.2
2.2、无UI界面的运行
- pytest test_专家管理.py --headless
2.3、测试浏览器兼容性
- pytest test_专家管理.py【不添加,默认chrome】
- pytest test_专家管理.py --browser=chrome
- pytest test_专家管理.py --browser=firefox
- pytest test_专家管理.py --browser=edge
- pytest test_专家管理.py --browser=opera
- pytest test_专家管理.py --browser=ie
2.4、所有的登陆共用一个浏览器
- pytest test_专家管理.py --reuse-session
- pytest test_suite.py --reuse-session --crumbs 1
2.5、图形用户界面测试运行器
- python gui_test_runner.py
- gui_test_runner.py 代码示例
"""
GUI TEST RUNNER
Run by Typing: "python gui_test_runner.py"
(Use Python 3 - There are GUI issues when using Python 2)
"""import os
from tkinter import Tk, Frame, Button, Labelclass App:def __init__(self, master, test):self.test = testframe = Frame(master)frame.pack()self.label = Label(root, width=40).pack()self.title = Label(frame, text="", fg="black").pack()self.title1 = Label(frame, text=("Run a Test in Chrome:"), fg="blue", ).pack()self.run1 = Button(frame, command=self.run_1, text=(f"pytest {self.test} --browser=chrome"), fg="green", ).pack()self.title2 = Label(frame, text=("Run a Test in Firefox:"), fg="blue", ).pack()self.run2 = Button(frame, command=self.run_2, text=(f"pytest {self.test} --browser=firefox"), fg="green", ).pack()self.title8 = Label(frame, text="Run a Test with ie:", fg="blue", ).pack()self.run8 = Button(frame, command=self.run_8, text=(f"pytest {self.test} --browser=ie"), fg="green", ).pack()self.title5 = Label(frame,text="Run a Test in edge :",fg="blue",).pack()self.run5 = Button(frame,command=self.run_5,text=(f"pytest {self.test} --browser=edge"),fg="green",).pack()self.title3 = Label(frame,text="Run a Test with Demo:",fg="blue",).pack()self.run3 = Button(frame,command=self.run_3,text=(f"pytest {self.test} --demo --reuse-session"),fg="green",).pack()self.title4 = Label(frame,text="Run a Test with 无GUI :",fg="blue",).pack()self.run4 = Button(frame,command=self.run_4,text=(f"pytest {self.test} --headless"),fg="green",).pack()self.title6 = Label(frame,text="Run a Test Suite with a Test Report:",fg="blue",).pack()self.run6 = Button(frame,command=self.run_6,text=(f"pytest {self.test} --html=report.html --reuse-session"),fg="green",).pack()self.end_title = Label(frame, text="", fg="black").pack()self.quit = Button(frame, text="QUIT", command=frame.quit).pack()def run_1(self):os.system(f"pytest -s {self.test} --browser=chrome")def run_2(self):os.system(f"pytest {self.test} --browser=firefox")def run_3(self):os.system(f"pytest {self.test} --demo --reuse-session")def run_4(self):os.system(f"pytest {self.test} --headless")def run_5(self):os.system(f"pytest {self.test} --browser=edge")def run_6(self):os.system(f"pytest {self.test} --html=report.html --reuse-session")def run_8(self):os.system(f"pytest {self.test} --browser=ie")if __name__ == "__main__":# 请输入你要测试的测试用例test = "test_远程连接列表.py"# 此处不用管root = Tk()root.title("运行测试用例GUI界面")root.minsize(500, 500)app = App(root, test)root.mainloop()
2.6、在手机的浏览器上运行
- pytest test_专家管理.py --mobile
- 这里有很多参数可以配置,具体参考产品文档
- pytest test_swag_labs.py --mobile --metrics=“411,731,3”
- 运行指定CSS宽度、CSS高度和像素比率的移动测试
- pytest test_swag_labs.py --mobile --agent=“Mozilla/5.0 (Linux; Android 9; Pixel 3 XL)”
- 运行指定用户代理的移动测试
- 指定代理网站:https://developers.whatismybrowser.com/useragents/explore/
设备名称 开发规模 比率 实际尺寸 宽x高支柱
iPhone 5S 320x568 2 640x1136 0,56
iPhone 6 375x667 2 750x1334 0,56
iPhone6 Plus 414x736 3 1242x2208 0,56
iPhone6s 375x667 2 750x1334 0,56
iPhone6s Plus 414x736 3 1242x2208 0,56
iPhone7 375x667 2 750x1334 0,56
iPhone7 Plus 414x736 3 1242x2208 0,56
iPhone8 375x667 2 750x1334 0,56
iPhone8 Plus 414x736 3 1242x2208 0,56
iPhoneSE 320x568 2 640x1136 0,56
iPhoneX 375x812 3 1125x2436 0,46
iPhoneX - 无刘海 375x734 3 1125x2202 0,51
安卓一 320x569 1,5 480x853,5 0,56
宏达一号 M8 360x640 3 1080x1920 0,56
HTC 一号 M9 360x640 3 1080x1920 0,56
LG G2 360x640 3 1080x1920 0,56
摩托G 360x640 2 720x1280 0,56
摩托X 360x640 2 720x1280 0,56
摩托 X 2 360x640 3 1080x1920 0,56
连结 5 360x640 3 1080x1920 0,56
银河 S5 360x640 3 1080x1920 0,56
银河 S6 360x640 4 1440x2560 0,56
银河 S7 360x640 4 1440x2560 0,56
银河 S7 边缘 360x640 4 1440x2560 0,56
银河 S8 360x740 4 1440x2960 0,49
银河 S8+ 360x740 4 1440x2960 0,49
Xperia Z1 360x640 2 720x1280 0,56
Xperia Z2/Z3 360x640 3 1080x1920 0,56
Xperia Z3 Compact 360x640 4 1440x2560 0,56
连结 4 384x640 3 1152x1920 0,6
谷歌像素 411x731 2,6 1068,6x1900,6 0,56
谷歌像素 XL 411x731 3,5 1438,5x2558,5 0,56
Nexus 5X 411x731 2,6 1068,6x1900,6 0,56
连结 6 411x731 3,5 1438,5x2558,5 0,56
Nexus 6P 411x731 3,5 1438,5x2558,5 0,56
LG G3 480x853 3 1440x2559 0,56
三星注 4 480x853 3 1440x2559 0,56
Xperia C4 360x592 3 1080x1776 0,61
Xperia Z Ultra 360x592 3 1080x1776 0,61
2.7、使用[n]个线程运行测试
- pytest test_suite.py -n=4
- -n=4 --dist=loadscope
分布式执行时候,通过module、class分类测试用例方法 - -n=4 --dist=loadfile
分布式执行时候,通过 py 文件分类测试用例 - 组合:pytest -n=4 --reuse-session --headless -v --dashboard --html=report.html
2.8、失败重试机制
- pytest test_suite.py --reruns=2
- pytest my_first_test.py --reruns=1 --reruns-delay=1
2.9、查看测试报告
- pytest test_suite.py --dashboard --html=report.html
- pytest --dashboard --rs --headless
-r 测试报告、-s 详细信息
2.10、覆盖默认的settings.py文件
- pytest test_suite.pysettings-file=custom_settings.py
2.11、提取py文件中所有元素的 selector,并将测试用例替换为变量
sbase extract-objects my_first_test.py
将 myfirst_test.py 文件的 selector提取到 page_objects.py中
sbase inject-objects my_first_test.py -c
将page_objects.py中的元素变量替换到 myfirst_test.py
sbase revert-objects test_001.py -c
将文件恢复到为替换元素变量之前,-c并保留注释
2.12、在远程Selenium网格上运行测试
- pytest test_suite.py --server=ip --port=4444
2.13、pytest.ini常用配置
-v # 详细模式。打印每个测试运行的全名。
-q # 安静模式。运行测试时,在控制台输出中打印较少的详细信息。
-x # 第一个故障后,停止运行测试
--html=report.html # 在测试完成后创建详细的pytest html报告。
--collect-only | --co # 显示将运行哪些测试。
-n=NUM # 使用那么多线程执行测试。(加快测试运行速度!)
-s #打印报表。(在pytest.ini存在的情况下,默认情况下应处于启用状态。)
--junit-xml=report.xml # 在测试完成后创建JUnitXML报告。
--pdb # 如果测试失败,暂停运行并进入调试模式。(不要与CI一起使用!)
-m=MARKER # 使用指定的pytest标记运行测试。
2、命令行工具 - 不常用的
2.1、创建脚手架
- sbase mkdir ui_tests
创建用于运行SBase脚本的新文件夹,新文件夹包含默认配置文件,帮助新用户开始的示例测试,以及用于设置自定义测试框架。
2.2、使用样板代码创建新的SBase测试文件。
- sbase mkfile new_test.py
2.3、转换文件语言,转成中文,打印到界面
- sbase translate test_demo001.py --zh -p
重用浏览器会话,但删除测试之间的cookie ↩︎
seleniumbase学习总结4 - 运行测试用例相关推荐
- Appium真机运行测试用例讲解
Appium真机运行测试用例讲解 (2015-07-28 18:12:33) 标签: 手机自动化测试 appium框架 真机运行 分类: 手机自动化测试 -----手机自动化之Appium 手机自动化 ...
- Linux进程线程学习笔记:运行新程序
Linux进程线程学习笔记:运行新程序 周银辉 在上一篇中我们说到,当启动一个新进程以后,新进程会复制父进程的大部份上下文并接着运行父进程中的代码,如果我们使新进程不运行原父进程的代码,转而运行另外一 ...
- 吃瓜笔记 | Momenta王晋玮:让深度学习更高效运行的两个视角
主讲人:王晋玮 | Momenta合伙人 屈鑫 编辑整理 量子位 出品 | 公众号 QbitAI 2月1日晚,量子位·吃瓜社联合Momenta带来吃瓜社第五期:让深度学习更高效运行的两个视角. 作为顶 ...
- NVIDIA Jetson Nano主机的autoware的学习与demo运行-第1章-操作环境的搭建
操作环境的搭建 计算机平台介绍 NVIDIA 在2019年NVIDIA GPU技术大会(GTC)上发布了Jetson Nano开发套件,这是一款售价99美元的计算机,现在可供嵌入式设计人员,研究人 ...
- 学习安装java运行环境
提示:学习安装java运行环境 文章目录 安装JDK 一.配置windows环境变量. 1.配置环境变量 2. 配置path 3.测试JDK是否安装成功 总结 安装JDK 提示:由于JDK8为大部份公 ...
- pytest-pytest.main()运行测试用例,pytest参数
本文介绍pytest.main运行测试用例的方法 pytest.main():main中传入不同的指令用以执行指定测试用例 -s: 显示程序中的print/logging输出 -v: 丰富信息模式, ...
- 01.监控深度学习平台的运行情况
1.需求 监控深度学习平台的运行情况 2.方法 watch -n 1 nvidia-smi 3.影响因素 Volatile GPU util 调节batchsize和num_workers,使得该数值 ...
- ROS学习心得——正确运行RPLIDAR A2激光雷达(让它转起来吧!)
ROS学习心得--正确运行RPLIDAR A2激光雷达 FOR THE SIGMA FOR THE GTINDER FOR THE ROBOMASTER 简介: 产品相关数据与官方文档:http:// ...
- 关于pyCharm运行测试用例无法生成测试报告
在pyCharm里面以unittestsxxx的方式运行测试用例py文件时可能会无法生成测试报告,这时应该将运行方式改为py文件正常模式运行
最新文章
- 我的第一个appium+Python自动化实例
- Jquery工作常用实例——隐藏功能实现
- ML之RFDT:利用RF(RFR)、DT(DTR)两种算法实现对boston(波士顿房价)数据集进行训练并预测
- Android复习02(ListView具体操作[很详细]、简单音乐播放器)
- Linux五部分的含义,Linux 目录下部分重要目录的用途及含义及一些命令的作用
- 用maven搭建 testNG+PowerMock+Mockito测试框架
- 实战~~整个网络无法浏览,提示网络不存在或者尚未启动
- HDU 1422 重温世界杯 (dp)
- 智能优化算法:学生心理学优化算法 -附代码
- ColorUI 微信小程序 商品详情页模板,仿微信胶囊
- 为基于GTK/CLUTTER的库增加GJS支持
- Navicat注释乱码
- Atmel跑Linux的arm芯片,linux下烧写atmel芯片
- 梦想照进现实|CSDN 实体奖牌 第六期
- VBA基本操作(二)——空白单元格填充
- 学画画,这些美术集标记好的学习重点拿去用
- 晶体管发明往事:误打误撞,反目成仇,共享诺贝尔奖
- NIOP 1999 导弹问题 最长升降序子序列 DP[小思路]
- 普元 EOS Platform 7.6 开发版安装时没装coframe,后续再部署coframe源码的操作步骤
- 2021年十大数据分析和商业智能趋势