java api repo: https://github.com/fourcolor/sideex-api-java
以下功能需要將 runner 切到 feat/api-support 這個 branch 才能使用
- 安裝 pkg
- 指令 npm install -g pkg
- runner build 完後到 modules/main/dist/runner
- pkg sideex-runner.js
- 資料夾內會出現 sideex-runner-linux, sideex-runner-win.exe, sideex-runner-macos
- 為主要驅動 Runner 的 Class
Driver(String path, Config config)
- path: runner 的路徑
- config: sideex config object 包含 sideex runner config file 的所有資訊
run()
- 根據傳入的 runner path ,及 config 物件執行,會回傳JsonNode格式的report
以下 Class 對應 SideeX Runner Document Config File Format 每個欄位都有對應的 get, set function ex: Config 的 input 欄位有 setInput(Input input) 及 getInput() 因此下面指列每個 class 的成員變數
- Member
Input input
Report report
WebDriver webdriver
Play play
- Member
ArrayList<String> testSuites
ArrayList<String> variables
ArrayList<String> dataDriven
- Member
String type
int snapshot
int snapshotQuality
- Member
ArrayList<WebDriverConfig> configs
Map<String, String> i18n
- Member
int mode
String entry
int autoWaitTimeout
int speed
Period period
- Member
String type
String serverUrl
ArrayList<Browser> browsers
ArrayList<Session> sessions
- Member
Map<String, Object> capbility
此功能還尚未整合進去boolean keepSessionAlive
Session 功能還尚未整合進去 feat/api-support
public static void main(String[] args) {
ArrayList<String> testSuites = new ArrayList<String>();
testSuites.add("/path/to/testSuite.json");
Browser browser = new Browser();
Map<String, Object> caps = new HashMap<>();
caps.put("browserName", "chrome");
browser.setCapbility(caps);
ArrayList<Browser> browsers = new ArrayList<Browser>();
browsers.add(browser);
WebDriverConfig webDriverConfig = new WebDriverConfig();
webDriverConfig.setBrowsers(browsers);
webDriverConfig.setServerUrl("http://url.to.selenium.grid");
ArrayList<WebDriverConfig> webDriverConfigs = new ArrayList<WebDriverConfig>();
webDriverConfigs.add(webDriverConfig);
Config config = new Config();
config.getInput().setTestSuites(testSuites);
config.getWebdriver().setConfigs(webDriverConfigs);
Driver driver = new Driver(
"/path/to/runner", config);
JsonNode report = driver.run();
ObjectMapper objectMapper = new ObjectMapper();
System.out.println(objectMapper.writeValueAsString(report));
}