相关文章推荐
苦闷的扁豆  ·  ubuntu ...·  1 年前    · 
眼睛小的排球  ·  React Hooks ...·  1 年前    · 
伤情的刺猬  ·  GTK+-3.0编程 (三) ...·  1 年前    · 

遇到的问题:

项目中出现了输入框中输入2.3,取值为2.29的问题,造成录入数据准确,最后发现是JS精度丢失的问题,手工输入小数位耗时又耗力,决定使用Selenium+Maven+chromedriver搭建自动化测试(ps:最开始打算使用Firefox浏览器进行测试,但是倒腾了很久,只能启动浏览器,不能输入网址,最后以超时结束,网上进行了查询,发现是Selenium、Firefox、geckodriver三者存在版本兼容问题,找到三者适配的版本耗时又耗力,后选择了Chrome浏览器,果断成功~)。

搭建步骤:

一、使用“ Katalon Recorder ”插件录制页面操作,并将操作命令导出为java文件,也可以在选择导出的时候直接复制导出的代码到编辑器中

二、创建Maven项目,在pom.xml中引入相关依赖

	<dependency>
	    <groupId>junit</groupId>
	    <artifactId>junit</artifactId>
	    <version>4.12</version>
	    <scope>test</scope>
       </dependency>
	<dependency>
    	    <groupId>org.seleniumhq.selenium</groupId>
    	    <artifactId>selenium-java</artifactId>
    	    <version>3.5.1</version>
	</dependency>

三、下载 chromedriver.exe ,chromedriver.exe需要与Chrome浏览器版本对应(可参考: https://www.cnblogs.com/it-tsz/p/11753800.html

四、构建代码

package com.cmcc.ipb;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;
import org.junit.*;
import static org.junit.Assert.*;
import org.openqa.selenium.*;
import org.openqa.selenium.chrome.ChromeDriver;
public class App {
  private WebDriver driver;
  private StringBuffer verificationErrors = new StringBuffer();
  @Before
  public void setUp() throws Exception {
    // 第三步下载下来的chromedriver.exe的安装地址
    System.setProperty("webdriver.chrome.driver", "D:\\soft\\chromedriver.exe");
    driver = new ChromeDriver();
    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
  @Test
  public void testIPB() throws Exception {
	  	driver.get("http://10.8.8.50/#/login");
	    driver.findElement(By.xpath("//input[@type='text']")).click();
	    driver.findElement(By.xpath("//input[@type='text']")).clear();
	    driver.findElement(By.xpath("//input[@type='text']")).sendKeys("admin");
	    driver.findElement(By.xpath("//div[@id='app']/div/div/div/div[2]/div/div[2]/div[2]/form/div[2]/div/div")).click();
	    driver.findElement(By.xpath("//input[@type='password']")).click();
	    driver.findElement(By.xpath("//input[@type='password']")).clear();
	            driver.findElement(By.xpath("//input[@type='password']")).sendKeys("!QAZ2wsx");
	    driver.findElement(By.xpath("(//input[@type='text'])[2]")).click();
	    driver.findElement(By.xpath("(//input[@type='text'])[2]")).clear();
        driver.findElement(By.xpath("(//input[@type='text'])[2]")).sendKeys("1234");
	    driver.findElement(By.xpath("//button[@type='submit']")).click();
	    driver.findElement(By.xpath("//div[@id='app']/div/div[2]/div[2]/div/div/ul/li/div/span")).click();
	    driver.findElement(By.xpath("//div[4]/ul/li[3]/div")).click();
	    driver.findElement(By.xpath("//div[4]/ul/li[3]/div[2]/ul/li/span")).click();
	    driver.findElement(By.xpath("//div[@id='app']/div/div[2]/div[2]/div[2]/div/div[2]/div/div/div/div[2]/div[2]/button/span")).click();
	    List<String> numlist= getNum();
	    validate(numlist);
 * @param numlist
 * 验证输入数据和取值是否一致
  private void validate(List<String> numlist){
	  String num=null;
	  //第一条0.00不需要,从0.01开始验证
	  for (int i=1;i<=numlist.size();i++) {
		  num=numlist.get(i);
		  	driver.findElement(By.xpath("(//input[@type='text'])[19]")).click();
		    driver.findElement(By.xpath("(//input[@type='text'])[19]")).clear();
		    driver.findElement(By.xpath("(//input[@type='text'])[19]")).sendKeys(num);
		    driver.findElement(By.xpath("(//input[@type='text'])[9]")).click();
		    driver.findElement(By.xpath("(//input[@type='text'])[9]")).clear();
		    driver.findElement(By.xpath("(//input[@type='text'])[9]")).sendKeys("wo");
		   String value= driver.findElement(By.xpath("(//input[@type='text'])[19]")).getAttribute("value");
		   if(!value.equals(num)){
			   System.out.println("value:"+num+"======text:"+value);
 * @return
 * 构造0.00-9.99之间的所有两位小数
private List<String> getNum(){
	  List<String> numlist=new ArrayList<String>();
	  String num=null;
	  for (int i = 0; i <= 9; i++) {
		for (int j = 0; j <= 9; j++) {
			for (int q = 0; q <= 9; q++) {
				num=i+"."+j+q;
				numlist.add(num);
				num=null;
	  return numlist;
  @After
  public void tearDown() throws Exception {
    driver.quit();
    String verificationErrorString = verificationErrors.toString();
    if (!"".equals(verificationErrorString)) {
      fail(verificationErrorString);

五、运行代码,自动启动Chrome浏览器,控制台处输出录入值与取值不一致的数据,再根据输出结果做验证。

遇到的问题:项目中出现了输入框中输入2.3,取值为2.29的问题,造成录入数据准确,最后发现是JS精度丢失的问题,手工输入小数位耗时又耗力,决定使用Selenium+Maven+chromedriver搭建自动化测试。搭建步骤:一、使用“Katalon Recorder”插件录制页面操作,并将操作命令导出为java文件,也可以在选择导出的时候直接复制导出的代码到编辑器中二、创建... 2、 字符长度校验,输入是缓冲区溢出的超长字符,默认字符,空字符,特殊字符,尤其是系统保留字符 3、 根据的页面使用的不同程序语言,输入不同的语言字符串,如HTML格式语言,JS函数格式 4、 输入全角/半角的数字,大小写英文 5、 输入特殊字符串如null, 空格,回车转义符 6、 若是必填项只输入... 1.前提条件:我使用的开发工具是eclipse,win10系统、安装好JDK; 2.下载Maven地址:https://maven.apache.org/(maven官网) 2.1 步骤1:点击Download按钮,进入下载页面, 步骤2:找到标题为files,Windows系统点击.zip链接下载,Binary 表示已经编译好的可执行版本,无需自己...
selenium 作为现在最主流的UI自动化框架,基本成为了自动化测试必备的技能,本文是笔者在学习的时候做的笔记,也是实战内容。 一、selenium相关配置: 1、官方文档地址: https://www.selenium.dev/documentation/zh-cn/ 2、谷歌各版本下载 http://www.chromedownloads.net/chrome64win/ 3、谷歌驱动下载 http://npm.taobao.org/mirrors/chromedriver 4、禁止谷歌浏览器更新 2、settings 配置: 仓库地址(根据个人习惯自行配置): &lt;localRepository&gt;D:\maven_repository&lt;/localRepository&gt; 阿里镜像(下载依赖速度会快很多) &lt;mirrors&gt; &lt;mi...
【项目资源】: 包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。 包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。
1. 可实现任意分组比例下电容器组和电抗器组混合安装的离散无功补偿装置(既某段母线上安装的补偿设备既包括电容器组又包括电抗器组)的无功补偿优化策略,可满足500kV以上超特高压交流变电站的无功补偿需求(考虑到超特高压交流变电站内所接长线路的等效容抗,既需要感性无功补偿又需要容性无功补偿) 2. 可在补偿装置总容量和容量比给定时,指定满足考虑最大日投切次数约束的电容器组补偿优化策略,该投切策略可使得当日绝对无功电量达到最小 3. 可在指定补偿优化策略后,得出补偿装置的实时运行状态、补偿装置内各电容/电抗器组运行状态、补偿前后绝对无功电量等信息 4. 可按照最小欠补偿(Mode = 1,在不能出现过补偿的前提下使得当日绝对无功电量达到最小)和最小过补偿(Mode = -1,在不能出现欠补偿的前提下使得当日绝对无功电量达到最小)两种模式指定补偿优化策略 5. 可证明:该方法可得出任意投切次数要求下的补偿装置的无功补偿优化策略(证明方法将呈现在拟发表的论文中,拟向SCI、EI或者CSCD投稿论文) 1. 修复了程序中的部分bug
Java+Spring Boot+Maven+Git组合也可以用于自动化测试,以下是一些常用的自动化测试工具和技术: 1. 单元测试:使用JUnit和Mockito等测试框架进行单元测试,使用Maven进行构建和运行测试,使用Git进行版本控制。 2. 集成测试:使用Spring Boot Test框架进行集成测试,使用Maven进行构建和运行测试,使用Git进行版本控制。 3. UI测试:使用Selenium和WebDriver等UI测试框架进行UI自动化测试,使用Maven进行构建和运行测试,使用Git进行版本控制。 4. 性能测试:使用JMeter等性能测试工具进行负载测试和性能测试,使用Maven进行构建和运行测试,使用Git进行版本控制。 在进行自动化测试时,可以借助各种CI/CD工具实现自动化构建、测试和部署,例如Jenkins、Travis CI、GitLab CI/CD等等。这些工具可以将代码提交到Git代码库后,自动触发构建和测试,并将测试结果反馈给开发人员和测试人员,以便及时发现和解决问题。 总之,Java+Spring Boot+Maven+Git组合可以用于实现自动化测试,提高测试效率和质量,同时也方便团队协作和版本控制。