Smart-ui-framework is a light, robust Web/Android/IOS UI automation framework based on Webdriver, Appium and TestNG.
- Tags: Selenium, Appium, Webdriver, TestNG, Automation,Spring boot
- Support spring boot grammar such as @Value,@Autowired on client code
- Support page object design pattern and extend page factory support highlight element, log action, screenshot action automatically and so on
- Good support concurrent testing with multi webdriver
- Re-run failed test cases and capture screenshot automatically when testcase fails
- Support identify Toast and PopupWindow for appium through android-automation-library
<dependency>
<groupId>com.github.lwfwind.automation</groupId>
<artifactId>smart-ui-framework</artifactId>
<version>3.8</version>
</dependency>
@Page
public class SearchPage{
private WebDriver driver;
@Value("${webPath}")
private String url;
@FindBy(id = "kw")
private WebElement searchTestBox;
@FindBy(id = "su")
private WebElement searchBtn;
public void searchFor(String text) {
driver.get(url);
searchTestBox.sendKeys(text);
searchBtn.click();
}
}
@Service
public class SearchService {
@Autowired
SearchPage searchPage;
public void search(String content){
searchPage.searchFor(content);
searchPage.verifyResult();
}
}
public class SearchWithServiceTest extends TestCaseBase {
@Autowired
SearchService searchService;
@Test(dataProviderClass = TestCaseData.class, dataProvider = "searchData", description = "搜索测试")
public void pageFactoryTest(String content) {
searchService.search(content);
}
}
5. Create test listener Class to add business log on success/fail/skip, which implement ICustomTestListener Class
public class TestListener implements ICustomTestListener {
@Override
public void onStart(ITestContext testContext) {
// TODO
}
@Override
public void onTestSuccess(ITestResult tr){
// TODO
}
@Override
public void onTestFailure(ITestResult tr) {
// TODO
}
@Override
public void onTestSkipped(ITestResult tr){
// TODO
}
@Override
public void onStart(ISuite iSuite){
// TODO
}
@Override
public void onFinish(ISuite iSuite){
// TODO
}
@Override
public void onStart(ITestContext testContext){
// TODO
};
@Override
public void onFinish(ITestContext testContext) {
// TODO
}
}
Detail please refer to smart-ui-automation-example