当前位置: 首页 > news >正文

天津 企业网站建设建设网站个人银行

天津 企业网站建设,建设网站个人银行,公司怎样制作网站,官网首页文章目录 一、自动化实施步骤1.1编写Web测试用例1.2 编写自动化代码1.2.1 LoginPageTest1) 能否正确打开登录页面2) 点击去注册能否跳转注册页面3) 模拟用户登录,输入多组登录测试用例 1.2.2 RegisterPageTest1) 能否成功打开注册页面2) 注册测试用例3) 点击去登录按…

文章目录

  • 一、自动化实施步骤
    • 1.1编写Web测试用例
    • 1.2 编写自动化代码
      • 1.2.1 LoginPageTest
        • 1) 能否正确打开登录页面
        • 2) 点击去注册能否跳转注册页面
        • 3) 模拟用户登录,输入多组登录测试用例
      • 1.2.2 RegisterPageTest
        • 1) 能否成功打开注册页面
        • 2) 注册测试用例
        • 3) 点击去登录按钮 测试注册成功的用例
      • 1.2.3 IndexPageTest
        • 1) 首页不同帖子简要内容能否正常显示
        • 2) 其他板块下不同帖子简要内容能否正常显示
        • 3) 搜索功能
        • 4) 进入帖子详情页
      • 1.2.4 MyPostPageTest
        • 1) 登录状态下个人帖子列表能否正常显示
      • 1.2.5 DoPostPageTest
        • 1) 登录状态下发布帖子

一、自动化实施步骤

对论坛Web系统开展自动化测试,以不同页面为维度来编写测试用例,根据测试用例,结合Selenium来设计自动化代码。同时采用junit进行单元测试,避免不同测试方法之间造成干扰,影响测试结果。

论坛系统在线访问链接:http://82.156.186.83:8080/index.html

1.1编写Web测试用例

在这里插入图片描述

1.2 编写自动化代码

在pom.xml文件中导入所需的依赖

<dependencies><!--WebDriverManager是⼀个开源Java库,--><dependency><groupId>io.github.bonigarcia</groupId><artifactId>webdrivermanager</artifactId><version>5.8.0</version><scope>test</scope></dependency><!--selenium-java--><dependency><groupId>org.seleniumhq.selenium</groupId><artifactId>selenium-java</artifactId><version>4.0.0</version></dependency><!--单元测试--><dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter-api</artifactId><version>5.10.3</version><scope>test</scope></dependency></dependencies>

提取一些所有页面测试都需要初始化的属性到父类ObjTest中

public abstract class ObjTest {public EdgeOptions options;public WebDriver driver;public void init() {//使用驱动管理器-自动初始化对应版本的浏览器驱动WebDriverManager.edgedriver().setup();//配置一下选项-允许访问所有链接options = new EdgeOptions();options.addArguments("--remote-allow-origins=*");}}

1.2.1 LoginPageTest

1) 能否正确打开登录页面

判断能否正确打开登录页面,以登录页面特有的元素是否成功获取到作为判断打开登录页面的标志

public Boolean openLoginPage() {//1.打开浏览器页面driver.get(loginPageUrl);//2.定位到登录页面 - 某些只有登录页面特有的元素// 如果能找到这些元素那么就判定成功打开登录页面WebElement element = driver.findElement(By.cssSelector("body > div > div > div > div:nth-child(1) > div > div.card.card-md > div > h2"));return element != null && "用户登录".equals(element.getText());}
 	@Testvoid openLoginPage() {System.out.println("能否成功打开登录页面" + loginTest.openLoginPage());loginTest.close();}

在这里插入图片描述

2) 点击去注册能否跳转注册页面

判断点击"去注册"按钮能否正确打开登录页面,以注册页面特有的元素是否存在到作为判断标志

 /**** 1.打开登录页面* 2.选中"去注册"按钮* 3.成功跳转注册页面* 4.选中注册页面特有的元素来判断是否成功跳转到注册页面* @return*/public Boolean clickRegisterButon() {driver.get(loginPageUrl);WebElement element = driver.findElement(By.cssSelector("body > div > div > div > div:nth-child(1) > div > div.text-center.text-muted.mt-3 > a"));if (element == null) return false;element.click();WebElement registerHeader = driver.findElement(By.cssSelector("#signUpForm > div > h2"));if (registerHeader == null) return false;return "用户注册".equals(registerHeader.getText());}
@Test
void clickRegisterButon() {System.out.println("点击去注册按钮能否成功跳转注册页面:"+ loginTest.clickRegisterButon());loginTest.close();
}

在这里插入图片描述

3) 模拟用户登录,输入多组登录测试用例

成功打开登录页面以后,在登录页面,模拟用户登录,输入用户名和密码,模拟输入设计好的测试,以登录成功跳转到首页为标志例判断能否登录成功。

/*** 1.打开登录页面* 2.找到用户名和密码输入框* 3.sendKeys 输入登录测试用例* 4.找到登录按钮并点击* 5.判断结果是否与测试用例一致** @param password* @param username* @return*/public Boolean login(String username, String password) throws InterruptedException {driver.get(loginPageUrl);WebElement inputName = driver.findElement(By.cssSelector("#username"));WebElement inputPasw = driver.findElement(By.cssSelector("#password"));if (inputName == null || inputPasw == null) return false;//输入数据之前清空一下输入框中的数据,避免之前输入框中原有的数据对测试造成干扰inputName.clear();inputPasw.clear();inputName.sendKeys(username);inputPasw.sendKeys(password);driver.findElement(By.cssSelector("#submit")).click();Thread.sleep(2000);WebElement element = null;try {element = driver.findElement(By.cssSelector("#nav_board_index > a > span"));} catch (Exception e) {e.printStackTrace();}if (element == null) return false;return "首页".equals(element.getText());}
 	@Testvoid login() throws InterruptedException {System.out.println("能否成功登录{testUser,h123,true}:" +loginTest.login("testUser", "h123"));loginTest.driver.navigate().back();System.out.println("能否成功登录{测试用户,h123,true}:" +loginTest.login("测试用户", "h123"));loginTest.driver.navigate().back();System.out.println("能否成功登录{测试,h123,false}:" +loginTest.login("测试", "h123"));loginTest.driver.navigate().back();System.out.println("能否成功登录{testUser,123,false}:" +loginTest.login("测试", "h123"));loginTest.close();}

在这里插入图片描述

测试结果与预期一致

1.2.2 RegisterPageTest

1) 能否成功打开注册页面
/*** 1.打开注册页面* 2.查找注册页面特有元素** @return*/public boolean openRegisterPage() {driver.get(registerPageUrl);WebElement registerHeader = driver.findElement(By.cssSelector("#signUpForm > div > h2"));if (registerHeader == null) return false;return "用户注册".equals(registerHeader.getText());}
   @Testvoid openRegisterPage() {System.out.println("能否成功打开注册页面:" + registerPageTest.openRegisterPage());}

在这里插入图片描述

2) 注册测试用例
 /*** 1.打开注册页面* 2.找到四个输入框* 3.输入测试用例* ***  1) 对输入框先调用一下clear方法,防止之前的参数造成测试不准确* 4,点击注册按钮能否成功跳转到登录** @param user* @return*/public boolean register(User user) {driver.get(registerPageUrl);WebElement inputUserName = driver.findElement(By.cssSelector("#username"));WebElement inputNickName = driver.findElement(By.cssSelector("#nickname"));WebElement inputPas = driver.findElement(By.cssSelector("#password"));WebElement inputReptedPas = driver.findElement(By.cssSelector("#passwordRepeat"));if (inputUserName == null || inputNickName == null|| inputPas == null || inputReptedPas == null) {return false;}inputUserName.clear();inputNickName.clear();inputPas.clear();inputReptedPas.clear();inputUserName.sendKeys(user.getUsername());inputNickName.sendKeys(user.getNickname());inputPas.sendKeys(user.getPassword());inputReptedPas.sendKeys(user.getRepeatedPas());WebElement registerButton = driver.findElement(By.cssSelector("#submit"));registerButton.click();driver.manage().timeouts().implicitlyWait(Duration.ofMillis(2000));WebElement loginHeader = null;try {loginHeader = driver.findElement(By.cssSelector("body > div > div > div > div:nth-child(1) > div > div.card.card-md > div > h2"));} catch (Exception e) {return false;}if (loginHeader == null) {return false;}return "用户登录".equals(loginHeader.getText());}

User

public class User {private String username = "";private String password = "";private String nickname = "";private String repeatedPas = "";public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getNickname() {return nickname;}public void setNickname(String nickname) {this.nickname = nickname;}public String getRepeatedPas() {return repeatedPas;}public void setRepeatedPas(String repeatedPas) {this.repeatedPas = repeatedPas;}@Overridepublic String toString() {return "User{" +"username='" + username + '\'' +", password='" + password + '\'' +", nickname='" + nickname + '\'' +", repeatedPas='" + repeatedPas + '\'' +'}';}
}
 @Testvoid register() throws InterruptedException {User u1Success = new User();u1Success.setUsername("testRegister11");u1Success.setNickname("煜");u1Success.setPassword("123456h");u1Success.setRepeatedPas("123456h");System.out.println(u1Success.toString()+ registerPageTest.register(u1Success));User u2 = new User();System.out.println(u2.toString()+ registerPageTest.register(u2));User u3 = new User();u3.setNickname("昵称");u3.setPassword("123");u3.setRepeatedPas("123");System.out.println(u3.toString()+ registerPageTest.register(u3));User u4 = new User();u4.setUsername("testRegister");u4.setNickname("煜");u4.setPassword("123456h");u4.setRepeatedPas("123");System.out.println(u4.toString()+ registerPageTest.register(u4));registerPageTest.close();}

在这里插入图片描述

3) 点击去登录按钮 测试注册成功的用例
 /*** 1.打开注册页面* 2.点击去登陆按钮* 3.找到输入框,清空之后在输入* 4.点击登录按钮,能否成功跳转到首页** @param user* @return*/public boolean clickLoginButton(User user) {driver.get(registerPageUrl);WebElement toLoginButton = driver.findElement(By.cssSelector("body > div > div > div > a"));if (toLoginButton == null) return false;toLoginButton.click();WebElement inputName = driver.findElement(By.cssSelector("#username"));WebElement inputPasw = driver.findElement(By.cssSelector("#password"));if (inputName == null || inputPasw == null) return false;inputName.clear();inputPasw.clear();inputName.sendKeys(user.getUsername());inputPasw.sendKeys(user.getPassword());driver.findElement(By.cssSelector("#submit")).click();driver.manage().timeouts().implicitlyWait(Duration.ofMillis(2000));WebElement element = null;try {element = driver.findElement(By.cssSelector("#nav_board_index > a > span"));} catch (Exception e) {}if (element == null) return false;return "首页".equals(element.getText());}
 @Testvoid clickLoginButton() {User user = new User();user.setUsername("testRegister11");user.setPassword("123456h");System.out.println("点击去登录:"+registerPageTest.clickLoginButton(user));registerPageTest.close();}

在这里插入图片描述

1.2.3 IndexPageTest

1) 首页不同帖子简要内容能否正常显示
 /*** 1.登录状态下访问首页* 2.查找 不同帖子是否存在=== elements 多个class为row的div标签是否存在多个** @param user* @return*/public boolean displayDiffPosts(User user) throws InterruptedException {Boolean login = login(user.getUsername(), user.getPassword());if (!login) return false;List<WebElement> elements = driver.findElements(By.cssSelector("#artical-items-body > div"));Thread.sleep(2000);return elements.size() >= 1;}
 @Testvoid displayDiffPosts() throws InterruptedException {User user = new User();user.setUsername("testUser");user.setPassword("h123");System.out.println("登录状态下首页不同帖子能否正常显示:" +indexPageTest.displayDiffPosts(user));}
2) 其他板块下不同帖子简要内容能否正常显示
 /*** 1.登录状态下点击不同板块* 2.查看该板块下的 不同帖子能否正常显示** @param user* @return* @throws InterruptedException*/public boolean clickDiffBoard(User user) throws InterruptedException {Boolean login = login(user.getUsername(), user.getPassword());if (!login) return false;//隐式等待5秒driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(5));WebElement boardTitle = driver.findElement(By.cssSelector("#topBoardList > li:nth-child(2) > a > span"));if (boardTitle == null) return false;boardTitle.click();WebElement element = driver.findElement(By.cssSelector("#article_list_board_title"));System.out.println(element.getText());return element != null && element.getText().length() > 0;}
@Testvoid clickDiffBoard() throws InterruptedException {User user = new User();user.setUsername("testUser");user.setPassword("h123");System.out.println("登录状态下不同板块不同帖子能否正常显示:" +indexPageTest.clickDiffBoard(user));}
3) 搜索功能
 /*** 1.登录* 2.找到输入框* 3.输入关键词* 4.搜索下拉框 能否找到多个结果元素** @param user* @return* @throws InterruptedException*/public boolean search(User user) throws InterruptedException {Boolean login = login(user.getUsername(), user.getPassword());if (!login) return false;//隐式等待5秒driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(5));WebElement inputSearch = driver.findElement(By.cssSelector("#input-search"));if (inputSearch == null) return false;inputSearch.sendKeys("java");List<WebElement> sarchElements = driver.findElements(By.cssSelector("#search-down>a"));return sarchElements.size() > 1;}
 @Testvoid seachr() throws InterruptedException {User user = new User();user.setUsername("testUser");user.setPassword("h123");System.out.println("登录状态下搜索功能能否正常使用:" +indexPageTest.search(user));}
4) 进入帖子详情页
 /*** 1.登录之后点击帖子正文* 2.跳转到详情页* 3.以详情页正文内容 能否查找到 并且正文长度大于0** @param user* @return* @throws InterruptedException*/public boolean intoDetailsPage(User user) throws InterruptedException {Boolean login = login(user.getUsername(), user.getPassword());if (!login) return false;//隐式等待5秒driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(5));WebElement postContent = driver.findElement(By.cssSelector("#artical-items-body > div:nth-child(1) > div > div.col > div.text-muted.mt-2 > div > div.content"));postContent.click();WebElement detailContent = driver.findElement(By.cssSelector("#details_article_content > p"));return detailContent != null && detailContent.getText().length() > 0;}
  @Testvoid intoDetailsPage() throws InterruptedException {User user = new User();user.setUsername("testUser");user.setPassword("h123");System.out.println("登录状态下点击帖子正文进入帖子详情页:" +indexPageTest.intoDetailsPage(user));}

在这里插入图片描述

1.2.4 MyPostPageTest

1) 登录状态下个人帖子列表能否正常显示
package forum;import forum.model.User;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;import java.time.Duration;public class MyPostPageTest extends ObjTest {private final String loginPageUrl = "http://82.156.186.83:8080/sign-in.html";public MyPostPageTest() {init();}private Boolean login(String username, String password) throws InterruptedException {driver.get(loginPageUrl);WebElement inputName = driver.findElement(By.cssSelector("#username"));WebElement inputPasw = driver.findElement(By.cssSelector("#password"));if (inputName == null || inputPasw == null) return false;inputName.clear();inputPasw.clear();inputName.sendKeys(username);inputPasw.sendKeys(password);driver.findElement(By.cssSelector("#submit")).click();Thread.sleep(2000);WebElement element = null;try {element = driver.findElement(By.cssSelector("#nav_board_index > a > span"));} catch (Exception e) {}if (element == null) return false;return "首页".equals(element.getText());}/*** 1.登录状态下进入个人帖子页面* 2.检查个人帖子页面元素是否正常显示** @param user* @return* @throws InterruptedException*/public boolean displayMyPostPage(User user) throws InterruptedException {Boolean login = login(user.getUsername(), user.getPassword());if (!login) return false;driver.findElement(By.cssSelector("#index_nav_avatar")).click();WebElement element = driver.findElement(By.cssSelector("#index_user_profile"));if (element == null) return false;element.click();//隐式等待5秒driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(5));WebElement registerTime = driver.findElement(By.cssSelector("#profile_createTime"));if (registerTime == null) return false;return registerTime.getText().length() > 0;}
}
 @Testvoid displayMyPostPage() throws InterruptedException {User user = new User();user.setUsername("testUser");user.setPassword("h123");myPostPageTest.displayMyPostPage(user);}

在这里插入图片描述

1.2.5 DoPostPageTest

1) 登录状态下发布帖子
public boolean doPost(User user, Article article) throws InterruptedException {login(user.getUsername(), user.getPassword());//隐式等待5秒driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(5));driver.findElement(By.cssSelector("#bit-forum-content > div.page-header.d-print-none > div > div > div.col-auto.ms-auto.d-print-none > div > div")).click();WebElement inputTitle = driver.findElement(By.cssSelector("#article_post_title"));inputTitle.sendKeys(article.getTitle());Thread.sleep(3000);WebElement inputContent = driver.findElement(By.cssSelector("#edit-article > div.CodeMirror.cm-s-default.CodeMirror-wrap > div.CodeMirror-scroll > div.CodeMirror-sizer > div > div > div > div.CodeMirror-code > div > pre > span > span"));Actions action = new Actions(driver);action.doubleClick(inputContent).sendKeys(Keys.DELETE).perform();action.sendKeys(article.getContent()).perform();Thread.sleep(5000);driver.findElement(By.cssSelector("#article_post_submit")).click();return true;}
 @Testvoid doPost() throws InterruptedException {User user = new User();user.setUsername("testUser");user.setPassword("h123");Article article = new Article();article.setTitle("ceshititle");article.setContent("secshiContent");doPostPageTest.doPost(user,article);}

发布帖子符合预期

http://www.dtcms.com/a/547421.html

相关文章:

  • 网站产品内容在数据库网站备案模板
  • 站长工具seo综合查询下载安装重庆seo关键词排名
  • 什么网站专门做自由行的机械产品做那几个网站好
  • 网站项目验收确认书南昌网站建设代理商
  • [MySQL] 视图
  • 网站设计的一般步骤是什么?设计软件网站推荐
  • 网站页面设计网站怎么套模板
  • 生成二维码的网站wordpress可爱的主题下载
  • 商丘做网站的公司有哪些加强网站的建设工作的通知
  • 东莞网站优化排名建设网站需要考虑什么
  • wordpress 做的网站学校的网站怎么做的好
  • 哪个网站做h5比较好看网络事件营销成功案例
  • 网站建设和平面设计绵阳网站建设
  • 网页制作与网站建设技术大全 pdf前端网站开发总结
  • wordpress 主题 国外百度seo优化软件
  • 公司网站建设合同电子版服装行业网站开发
  • 网站做授权登录界面安保企业网站模板
  • 骨科医院网站模板中国建设银行 英文网站
  • 网站开发语言怎么识别平面磨床东莞网站建设
  • 网站搭建系列教程网站设计方法
  • 产品网站建设广州哪里可以做网站
  • 有关网站建设的参考书wordpress减压完成后
  • 网站更换空间需要怎么做网站设计常见问题
  • 青岛网站建设找微网站 底部导航菜单
  • 网站前端开发培训招聘网页制作课程设计
  • 网站怎么开发代码免费留电话号码的广告
  • 上海网站制作公司价格
  • 免费凡科建站官网服务一流的做网站
  • 做外贸哪个网站最好wordpress 回到首页
  • 现代化专业群建设专题网站护理专业会所网站建设