先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024b (备注软件测试)
正文
这允许在一个地方修改由于UI变化所带来的所有修改。
通过一个简单的示例来说明页面对象。首先,思考一个不使用PO模式的自动化测试的典型案例:
/***
- Tests login feature
*/
public class Login {
public void testLogin() {
// 在登录页面上填写登录数据
driver.findElement(By.name(“user_name”)).sendKeys(“userName”);
driver.findElement(By.name(“password”)).sendKeys(“my supersecret password”);
driver.findElement(By.name(“sign-in”)).click();
// 登录后验证h1标签是否为Hello userName
driver.findElement(By.tagName(“h1”)).isDisplayed();
assertThat(driver.findElement(By.tagName(“h1”)).getText(), is(“Hello userName”));
}
}
这种方法有两个问题。
1、测试方法与定位器 (在此实例中为By.name)耦合过于严重。如果测试的用户界面更改了其定位器或登录名的输入和处理方式,则测试本身必须进行更改。
2、在对登录页面的所有测试中,同一个定位器会散布在其中。
可以在以下登录页面的示例中应用PO设计模式重写此示例。
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
/**
- Page Object encapsulates the Sign-in page.
*/
public class SignInPage {
protected WebDriver driver;
//
private By usernameBy = By.name(“user_name”);
//
private By passwordBy = By.name(“password”);
//
private By signinBy = By.name(“sign_in”);
public SignInPage(WebDriver driver){
this.driver = driver;
if (!driver.getTitle().equals(“Sign In Page”)) {
throw new IllegalStateException(“This is not Sign In Page,” +
" current page is: " + driver.getCurrentUrl());
}
}
/**
- Login as valid user
- @param userName
- @param password
- @return HomePage object
*/
public HomePage loginValidUser(String userName, String password) {
driver.findElement(usernameBy).sendKeys(userName);
driver.findElement(passwordBy).sendKeys(password);
driver.findElement(signinBy).click();
return new HomePage(driver);
}
}
Home page的PO如下所示。
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
/**
- Page Object encapsulates the Home Page
*/
public class HomePage {
protected WebDriver driver;
//
Hello userName
private By messageBy = By.tagName(“h1”);
public HomePage(WebDriver driver){
this.driver = driver;
if (!driver.getTitle().equals(“Home Page of logged in user”)) {
throw new IllegalStateException(“This is not Home Page of logged in user,” +
" current page is: " + driver.getCurrentUrl());
}
}
/**
- Get message (h1 tag)
- @return String message text
*/
public String getMessageText() {
return driver.findElement(messageBy).getText();
}
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
片转存中…(img-wSBKJw4C-1713194059492)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!