Sno*_*ugg 5 python selenium gradle robotframework selenium2library
我正在尝试设置将运行机器人测试的gradle任务。Robot使用python库与Selenium进行交互,以便通过浏览器测试网页。但是不幸的是,似乎安装https://github.com/robotframework/Selenium2Library的唯一方法是通过pip- pip install robotframework-selenium2library。有没有办法让Gradle在我的任务中运行此命令?
这是我所拥有的:
build.gradle:
configurations {
//...
acceptanceTestRuntime {extendsFrom testCompile, runtime}
}
dependencies {
//...
acceptanceTestRuntime group: 'org.robotframework', name: 'robotframework', version: '2.8.7'
//The following doesn't work, apparently this library isn't on maven...
//acceptanceTestRuntime group: 'org.robotframework', name: 'Selenium2Library', version: '1.+'
}
sourceSets {
//...
acceptanceTest {
runtimeClasspath = sourceSets.test.output + configurations.acceptanceTestRuntime
}
}
task acceptanceTest(type: JavaExec) {
classpath = sourceSets.acceptanceTest.runtimeClasspath
main = 'org.robotframework.RobotFramework'
args '--variable', 'BROWSER:gc'
args '--outputdir', 'target'
args 'src/testAcceptance'
}
Run Code Online (Sandbox Code Playgroud)
我的机器人资源文件-login.resource.robot:
*** Settings ***
Documentation A resource file for my example login page test.
Library Selenium2Library
*** Variables ***
${SERVER} localhost:8080
(etc.)
*** Keywords ***
Open Browser to Login Page
Open Browser ${LOGIN_URL} ${BROWSER}
Maximize Browser Window
Set Selenium Speed ${DELAY}
Login Page Should Be Open
Login Page Should Be Open
Location Should Be ${LOGIN_URL}
Run Code Online (Sandbox Code Playgroud)
当我运行此任务时,我的机器人测试已运行,但它们失败了。由于无法识别robotframework-selenium2Library中定义的某些关键字(例如“打开浏览器”),因此会引发异常。
我如何获得此任务的导入硒库?我可以通过一些python插件安装并调用pip吗?
我必须使用 gradle Exec 任务来运行 python 脚本,然后启动机器人测试。所以它看起来像这样:
构建.gradle
task acceptanceTest(type: Exec) {
workingDir 'src/testAcceptance'
commandLine 'python', 'run.py'
}
Run Code Online (Sandbox Code Playgroud)
src/testAcceptance/run.py
import os
import robot
import setup
#Which runs setup.py
os.environ['ROBOT_OPTIONS'] = '--variable BROWSER.gc --outputdir results'
robot.run('.')
Run Code Online (Sandbox Code Playgroud)
src/testAcceptance/setup.py
import os
import sys
import pip
import re
pip.main(['install', 'robotframework==3.0'])
pip.main(['install', 'robotframework-selenium2library==1.8.0'])
# Checksums can be looked up by chromedriver version here - http://chromedriver.storage.googleapis.com/index.html
pip.main(['install', '--upgrade', 'chromedriver_installer',
'--install-option=--chromedriver-version=2.24',
'--install-option=--chromedriver-checksums=1a46c83926f891d502427df10b4646b9,d117b66fac514344eaf80691ae9a4687,' +
'c56e41bdc769ad2c31225b8495fc1a93,8e6b6d358f1b919a0d1369f90d61e1a4'])
#Add the Scripts dir to the path, since that's where the chromedriver is installed
scriptsDir = re.sub('[A-Za-z0-9\\.]+$', '', sys.executable) + 'Scripts'
os.environ['PATH'] += os.pathsep + scriptsDir
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1384 次 |
| 最近记录: |