文章目录

  • 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

  1. 重用浏览器会话,但删除测试之间的cookie ↩︎

seleniumbase学习总结4 - 运行测试用例相关推荐

  1. Appium真机运行测试用例讲解

    Appium真机运行测试用例讲解 (2015-07-28 18:12:33) 标签: 手机自动化测试 appium框架 真机运行 分类: 手机自动化测试 -----手机自动化之Appium 手机自动化 ...

  2. Linux进程线程学习笔记:运行新程序

    Linux进程线程学习笔记:运行新程序 周银辉 在上一篇中我们说到,当启动一个新进程以后,新进程会复制父进程的大部份上下文并接着运行父进程中的代码,如果我们使新进程不运行原父进程的代码,转而运行另外一 ...

  3. 吃瓜笔记 | Momenta王晋玮:让深度学习更高效运行的两个视角

    主讲人:王晋玮 | Momenta合伙人 屈鑫 编辑整理 量子位 出品 | 公众号 QbitAI 2月1日晚,量子位·吃瓜社联合Momenta带来吃瓜社第五期:让深度学习更高效运行的两个视角. 作为顶 ...

  4. NVIDIA Jetson Nano主机的autoware的学习与demo运行-第1章-操作环境的搭建

    操作环境的搭建   计算机平台介绍 NVIDIA 在2019年NVIDIA GPU技术大会(GTC)上发布了Jetson Nano开发套件,这是一款售价99美元的计算机,现在可供嵌入式设计人员,研究人 ...

  5. 学习安装java运行环境

    提示:学习安装java运行环境 文章目录 安装JDK 一.配置windows环境变量. 1.配置环境变量 2. 配置path 3.测试JDK是否安装成功 总结 安装JDK 提示:由于JDK8为大部份公 ...

  6. pytest-pytest.main()运行测试用例,pytest参数

    本文介绍pytest.main运行测试用例的方法 pytest.main():main中传入不同的指令用以执行指定测试用例 -s: 显示程序中的print/logging输出 -v: 丰富信息模式, ...

  7. 01.监控深度学习平台的运行情况

    1.需求 监控深度学习平台的运行情况 2.方法 watch -n 1 nvidia-smi 3.影响因素 Volatile GPU util 调节batchsize和num_workers,使得该数值 ...

  8. ROS学习心得——正确运行RPLIDAR A2激光雷达(让它转起来吧!)

    ROS学习心得--正确运行RPLIDAR A2激光雷达 FOR THE SIGMA FOR THE GTINDER FOR THE ROBOMASTER 简介: 产品相关数据与官方文档:http:// ...

  9. 关于pyCharm运行测试用例无法生成测试报告

    在pyCharm里面以unittestsxxx的方式运行测试用例py文件时可能会无法生成测试报告,这时应该将运行方式改为py文件正常模式运行

最新文章

  1. 我的第一个appium+Python自动化实例
  2. Jquery工作常用实例——隐藏功能实现
  3. ML之RFDT:利用RF(RFR)、DT(DTR)两种算法实现对boston(波士顿房价)数据集进行训练并预测
  4. Android复习02(ListView具体操作[很详细]、简单音乐播放器)
  5. Linux五部分的含义,Linux 目录下部分重要目录的用途及含义及一些命令的作用
  6. 用maven搭建 testNG+PowerMock+Mockito测试框架
  7. 实战~~整个网络无法浏览,提示网络不存在或者尚未启动
  8. HDU 1422 重温世界杯 (dp)
  9. 智能优化算法:学生心理学优化算法 -附代码
  10. ColorUI 微信小程序 商品详情页模板,仿微信胶囊
  11. 为基于GTK/CLUTTER的库增加GJS支持
  12. Navicat注释乱码
  13. Atmel跑Linux的arm芯片,linux下烧写atmel芯片
  14. 梦想照进现实|CSDN 实体奖牌 第六期
  15. VBA基本操作(二)——空白单元格填充
  16. 学画画,这些美术集标记好的学习重点拿去用
  17. 晶体管发明往事:误打误撞,反目成仇,共享诺贝尔奖
  18. NIOP 1999 导弹问题 最长升降序子序列 DP[小思路]
  19. 普元 EOS Platform 7.6 开发版安装时没装coframe,后续再部署coframe源码的操作步骤
  20. 2021年十大数据分析和商业智能趋势

热门文章

  1. 【洛谷题解】P1255 数楼梯
  2. 写字机器人制作教程2.0
  3. mac更改管理员密码
  4. leetcode 883. 三维形体投影面积(python)
  5. alin的学习之路:面试题 数据库相关
  6. DedeCms SEO 优化全攻略
  7. fluent python 2nd edition_fluent python读书笔记2.2节
  8. Firefly-RK3399安装环境
  9. python爬取启信宝_requests,lxml爬启信宝
  10. 故障智能诊断读书笔记(一)