一、驱动
浏览器与驱动
我们运行的自动化测试不可能只在一个浏览器下运行,我们分别需要在chrome、firefox浏览器下运行,有时候甚至需要无界面模式。
在seldom中需要只需要修改一个配置即可。
import seldom
if __name__ == '__main__':
seldom.main(browser="chrome") # chrome浏览器,默认值
seldom.main(browser="firefox") # firefox浏览器
seldom.main(browser="ie") # IE浏览器
seldom.main(browser="opera") # opera浏览器
seldom.main(browser="edge") # edge浏览器
seldom.main(browser="safari") # safari浏览器
seldom.main(browser="chrome_headless") # chrome浏览器headless模式
seldom.main(browser="firefox_headless") # Firefox浏览器headless模式
在main()
方法中通过browser
参数设置不同的浏览器,默认为Chrome
浏览器。
- 安装浏览器驱动
虽然说安装浏览及驱动是做Web UI 自动化的前提,但是,浏览器驱动的下载安装和设置总是难倒了一部分新手。
seldom 提供了下载浏览器驱动的命令。
下载Chrome
浏览器驱动:
seldom -install chrome
注:众所周知的原因,chromedriver使用的taobao的镜像。
下载Firefox
浏览器驱动:
seldom -install firefox
默认下载到当前的lib/
目录下面,将lib/
目录添加环境变量path
。
如果你连添加环境变量path
都不会,没关系!你可以在seldom中指定浏览器驱动文件目录的绝对路径。
import seldom
# ……
if __name__ == '__main__':
seldom.main(path="test_sample.py",
browser="chrome",
driver_path="D:\git\seldom\lib\chromedriver.exe")
注:浏览器要browser
与驱动driver_path
要保持对应关系。
- 驱动下载地址
当然,你也可以手动下载不同浏览器驱动:
geckodriver(Firefox):https://github.com/mozilla/geckodriver/releases
Chromedriver(Chrome):https://sites.google.com/a/chromium.org/chromedriver/home
IEDriverServer(IE):http://selenium-release.storage.googleapis.com/index.html
operadriver(Opera):https://github.com/operasoftware/operachromiumdriver/releases
MicrosoftWebDriver(Edge):https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver
二、seldom 运行
seldom的给运行新手造成了困扰,强烈不建议你在pycharm
里面运行。因为许多新手根本搞不明白 pycharm 的运行配置,引起的运行错误也不知道怎么解决。
Window建议使用cmd, mac/linux使用自带终端。
运行说明
参考目录结构如下:
mypro/
├── test_dir/
│ ├── test_sample.py
├── reports/
└── run.py
seldom要运行的测试是由main()
方法决定的,创建 run.py
文件
import seldom
seldom.main(path="./")
在cmder/终端下面运行 run.py
文件
> python run.py
或者:
> seldom -r run.py
要运行的用例由 path
参数控制
"./"
: 表示run.py
文件所在目录下的所有以test
开头的测试文件。"./test_dir/"
: 指定test_dir/
目录下所有以test
开头的测试文件。"./test_dir/test_sample.py"
: 指定test_dir/
目录下的test_samplepy
测试文件."test_sample.py"
: 指定当前目录下的test_sample.py
测试文件。
三、main() 方法
main()
方法是seldom运行测试的入口, 很多重要的配置都是通过这个方法完成。
import seldom
# ...
if __name__ == '__main__':
seldom.main(path="./",
browser="chrome",
report=None,
title="百度测试用例",
description="测试环境:chrome",
debug=False,
rerun=0,
save_last_run=False,
driver_path=None,
grid_url=None,
timeout=None
)
说明:
- path : 指定测试目录或文件。
- browser : 指定测试浏览器,默认
Chrome
。 - report : 自定义测试报告的名称,默认格式为
2020_04_04_11_55_20_result.html
- title : 指定测试报告标题。
- description : 指定测试报告描述。
- debug : debug模式,设置为True不生成测试HTML测试,默认为
False
。 - rerun : 设置失败重新运行次数,默认为
0
。 - save_last_run : 设置只保存最后一次的结果,默认为
False
。 - driver_path : 设置浏览器驱动的
绝对
路径。要和browser
设置保持一致。 - grid_url : 设置远程节点,selenium Grid doc。
- timeout : 设置超时时间,默认10秒
四、seldom 生成测试报告
seldom 默认生成测试报告,在你运行测试用例所再目录下面。
例如,你的目录是这样的:
mypro/
└── test_sample.py
测试文件 test_sample.py
内容如下:
import seldom
class YouTest(seldom.TestCase):
def test_case(self):
"""a simple test case """
self.open("https://www.baidu.com")
self.type(id_="kw", text="seldom")
self.click(css="#su")
self.assertTitle("seldom_百度搜索")
if __name__ == '__main__':
seldom.main("test_sample.py")
执行命令:
seldom -r test_sampe.py
最终运行完成的目录结构如下:
mypro/
├── reports/
│ ├── 2020_01_01_11_20_33_result.html
└── test_sample.py
通过浏览器打开 2020_01_01_11_20_33_result.html
测试报告,查看测试结果。
打开debug
我们并不是所有时候运行测试用例都希望生成HTML测试报告,那么就可以打开debug
模式。
...
if __name__ == '__main__':
seldom.main("test_sample.py", debug=True)
这样就不会生成HTML测试报告了。
定义测试报告的名称
有时候我们需要在测试报告中加上自动化项目的一些信息,那么就可以通过 title
和description
设置。
...
if __name__ == '__main__':
seldom.main(path="test_sample.py",
title="百度测试用例",
description="测试环境:windows 10/ chrome")