当前位置:   article > 正文

selenium自动化测试

selenium自动化测试

前言

           现在很多小公司组织架构不完整,人员分工不明确,很多程序员,软件工程师,高级软件工程师都要身兼多职既要完成好他的本职工作又要身兼一部分,数据库设计优化(DBA职责),软件测试(测试工程师职责),软件运维(运维工程师职责)。当其他繁琐的测试,运维工作占用大量开发工程师时间时候,导致开发时间大大减少同时导致开发的代码质量变的极差(在可用性,可靠性,安全性,易用性,安全性等未做考虑只完成了功能性的开发)。进而导致项目进度延期(加班加剧,‘996’横行),软件测试,软件运维,数据库优化迫在眉睫。如此‘恶性循环’导致项目臃肿,程序bug多,导致整个项目不可控因数急剧增加。最终导致项目运行不下去(软件危机)。

解决办法(仅个人意见)

1, 划分责任范围,明确工作目标。

2,使用项目管理工具,做好项目版本控制及项目管理。

3,使用自动化工具,提高工作效率。

4,后续补充。

项目管理应该具备的一些知识(正在学习中)

现介绍一种优秀的web自动化测试工具selenium(使人从繁杂的测试中解放出来)

1下载浏览器驱动

2新建maven项目,引入selenium-java

  1. <!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
  2. <dependency>
  3. <groupId>org.seleniumhq.selenium</groupId>
  4. <artifactId>selenium-java</artifactId>
  5. <version>3.8.1</version>
  6. </dependency>

3编写代码

  1. import java.util.concurrent.TimeUnit;
  2. import org.openqa.selenium.By;
  3. import org.openqa.selenium.Point;
  4. import org.openqa.selenium.WebDriver;
  5. import org.openqa.selenium.WebElement;
  6. import org.openqa.selenium.chrome.ChromeDriver;
  7. import org.openqa.selenium.firefox.FirefoxDriver;
  8. /**
  9. * @Title: com.xiao.selenium.BaiduPanLogin.java
  10. * @Description:
  11. * @author changw.xiao@qq.com
  12. * @date 2018年2月5日 上午9:16:44
  13. * @version V1.0
  14. */
  15. public class BaiduLogin {
  16. public static void main(String[] args) throws InterruptedException {
  17. Thread.sleep(3000);
  18. System.setProperty("webdriver.chrome.driver", "c://chromedriver.exe");
  19. WebDriver driver = new ChromeDriver();
  20. /* System.setProperty("webdriver.gecko.driver", "c://geckodriver.exe");
  21. WebDriver driver = new FirefoxDriver();*/
  22. // driver.manage().window().maximize();
  23. driver.manage().window().setPosition(new Point(100, 50));
  24. driver.manage().deleteAllCookies();
  25. // 与浏览器同步非常重要,必须等待浏览器加载完毕
  26. driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
  27. driver.get("https://pan.baidu.com/");
  28. Thread.sleep(1000);
  29. WebElement qqLoginLink = driver
  30. .findElement(By.xpath("//*[@id='TANGRAM__PSP_4__footerULoginBtn']"));
  31. qqLoginLink.click();
  32. Thread.sleep(1000);
  33. // 获取当前页面句柄
  34. String handle = driver.getWindowHandle();
  35. // 获取所有页面的句柄,并循环判断不是当前的句柄 然后切换到子窗体
  36. for (String handles : driver.getWindowHandles()) {
  37. if (handles.equals(handle))
  38. continue;
  39. driver.switchTo().window(handles);
  40. }
  41. // 由于登录输入框在frame中,还需要先切换进入frame,否则,也找不到输入框的
  42. // 调试过程中,如果提示找不到元素,不知道是否切换成功了,可以把当前handler的source打印出来看看
  43. // System.out.println(driver.getPageSource());
  44. driver.findElement(By.xpath("//*[@id='TANGRAM__PSP_4__userName']")).sendKeys("15070938483");
  45. driver.findElement(By.xpath("//*[@id='TANGRAM__PSP_4__password']")).sendKeys("liu291291");
  46. driver.findElement(By.xpath("//*[@id='TANGRAM__PSP_4__submit']")).click();
  47. //由于我的账号没绑定手机,点登录后会有个提示,如果直接关闭,可能被判断为还没完成登录,没有会话,所以稍等片刻
  48. Thread.sleep(2000);
  49. //关闭弹出的子窗体
  50. driver.close();
  51. //driver.navigate() 下有很多方法,比如后退,刷新等
  52. Thread.sleep(2000);
  53. }
  54. }

测试结果

这样就可以从测试中解放出来。不用再不断去做无聊的测试提升测试效率

源码及驱动https://download.csdn.net/download/u010740917/11141589

                                                                                                                       此致:敬礼

                                                                                                                                         感谢各位网友的阅读。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/629339
推荐阅读
相关标签
  

闽ICP备14008679号