使用Selenium进行端到端测试
Flask中的测试客户端不能完全模拟运行中的应用所处的环境。例如:如果应用依赖在客户端浏览器中运行的JS代码的话,就不能使用Flask测试客户端,因为返回给测试的响应中的JS代码不会执行。
多数Web浏览器都支持自动化操作。Selenium是一个Web浏览器自动化工具,支持3中主要操作系统中的多数主流Web浏览器。使用pipenv安装selenium的python接口:
pipenv install selenium --dev
除了selenium本身,还需要安装浏览器即对应版本的驱动。几个主流浏览器的Web驱动的下载地址如下:
Chrome | https://sites.google.com/a/chromium.org/chromedriver/downloads |
Firefox | https://github.com/mozilla/geckodriver/releases |
Safari | https://webkit.org/blog/6900/webdriver-support-in-safari-10/ |
下载驱动后我们要把驱动程序的路径添加到系统PATH环境变量中。这样Selenium才能执行对应的程序。最简单的方式是把驱动程序放到Python解析器所在的目录下,如:
使用selenium进行测试,要求应用在Web服务器中运行,监听真实的HTTP请求。本节使用的方法是,让应用运行在后台线程里的开发服务器中,而测试运行在主线程中。在测试的控制下,Selenium启动web浏览器,连接应用,执行所需操作。使用这种方法需要解决一个问题,即所有测试完成后,要停止Fla