Healenium Java使用手册

简介: 许多文章都介绍healenium Java,但是都没有讲透,下面进行详细介绍。Healenium分为服务器端和客户端,必须二者都配好才可以运转

许多文章都介绍healenium Java,但是都没有讲透,下面进行详细介绍。Healenium分为服务器端和客户端,必须二者都配好才可以运转。

一、Healenium服务器端

1.建立项目MyHealenium,采用Meaven架构。修改pom.xml。

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com</groupId>
  <artifactId>MyHealenium</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>11</maven.compiler.source>
      <maven.compiler.target>11</maven.compiler.target>
    <maven-compiler-plugin-version>2.3.2</maven-compiler-plugin-version>
<selenium.version>4.34.0</selenium.version>
<healenium.version>3.5.6</healenium.version>
    <junit.version>5.10.1</junit.version>
  </properties>
  <dependencies>
      <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter</artifactId>
        <version>${
   junit.version}</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>com.epam.healenium</groupId>
        <artifactId>healenium-web</artifactId>
        <version>${
   healenium.version}</version>
    </dependency>
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>${
   selenium.version}</version>
    </dependency>
    <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-chrome-driver</artifactId>
            <version>${
   selenium.version}</version>
        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-support</artifactId>
            <version>${
   selenium.version}</version>
        </dependency>
  </dependencies>
</project>

注意:${selenium.version}一定要用最新版本。

2.建立Java程序MyTest.java

package com.jerry;

import com.epam.healenium.SelfHealingDriver;

import org.junit.jupiter.api.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class MyTest{
   

@Test     
public void TestClickButton(){
           
    WebDriver delegate =new ChromeDriver();     
    SelfHealingDriver driver=SelfHealingDriver.create(delegate);     
    driver.get("http://127.0.0.1:8080/sec/53/");
    driver.findElement(By.id("button")).click();
    driver.quit();
   }
}

3.其中http://127.0.0.1:8080/sec/53/的HTML代码为。

<html>
<body>
<button id="button" style="height:50px; width:200px">
点击我
</button>
<div>
</div>
</body>
</htm1>

以JUnit5运行MyTest.java,测试通过,修改

以JUnit5运行MyTest.java,测试失败。

4.在test/resources/healenium.properties做如下设置

recovery-tries = 1
score-cap = 0.5
heal-enabled = true
hlm.server.url = http://localhost:7878
hlm.imitator.url = http://localhost:8081

含义如下

recovery-tries:提议修复的定位器列表

heal-enabled:用于启用或禁用修复功能的标志。您也可以通过-D参数或系统属性来设置此值,例如,若要关闭当前测试运行的修复功能,请设置:-Dheal-enabled=false

score-cap:用于启用具有预定义匹配概率的治疗功能的分数值(0.5表示,对于与目标定位器匹配概率大于等于50%的新治疗定位器,将执行治疗)

hlm.server.url:安装了hlm-backend实例的IP地址:端口号或名称

hlm.imitator.url: 安装模仿实例的IP:端口或名称

二、 Healenium客户端

1.在https://github.com/healenium/healenium-backend/下载healenium-backend.zip

2.解压healenium-backend.zip

3.一般网站上介绍在Dock中运行PostgreSQL,由于我在Windows运行,Dock不是很稳定,到PostgreSQL官网下载。然后运行。建立数据库healenium(可使用Premium建立)。
image.png

4.在%HEALENIUM_BACKEND_HOM \build\libs下建立application.properties。

# POSTGRESQL Connection Properties for Testcontainers overrided by DynamicPropertyRegistry
spring.datasource.url=jdbc:postgresql://localhost:5432/healenium?currentSchema=public
spring.datasource.username=postgres
spring.datasource.password=123456
server.port=8081
spring.liquibase.default-schema=public
spring.jpa.properties.hibernate.default_schema=public
spring.datasource.hikari.schema=public
spring.datasource.hikari.connection-init-sql=SET search_path TO public,

5,采用

C:\Tools\healenium-backend\build\libs>java -jar healenium-backend-3.4.8.jar --server.port=7878

启动healenium-backend。

在浏览器中输入

http://localhost:7878/,出现
image.png

6,运行MyTest.java,

<button id="button" style="height:50px; width:200px">

测试通过。修改为

<button id="buttonClick" style="height:50px; width:200px">

运行MyTest.java,测试仍旧通过。

三、healenium原理

如下图所示
image.png

目录
相关文章
|
SQL 关系型数据库 MySQL
Java中的MySQL高级使用手册:解锁数据库之道
Java中的MySQL高级使用手册:解锁数据库之道
261 1
|
NoSQL Java 关系型数据库
基于Java swing和mysql实现酒店管理系统(源码+数据库+运行指导视频+系统用户使用手册+系统PPT+数据库设计说明书+系统概要说明书+需求说明书+详细说明书)
基于Java swing和mysql实现酒店管理系统(源码+数据库+运行指导视频+系统用户使用手册+系统PPT+数据库设计说明书+系统概要说明书+需求说明书+详细说明书)
505 0
|
14天前
|
数据采集 存储 弹性计算
高并发Java爬虫的瓶颈分析与动态线程优化方案
高并发Java爬虫的瓶颈分析与动态线程优化方案
Java 数据库 Spring
48 0
|
26天前
|
算法 Java
Java多线程编程:实现线程间数据共享机制
以上就是Java中几种主要处理多线程序列化资源以及协调各自独立运行但需相互配合以完成任务threads 的技术手段与策略。正确应用上述技术将大大增强你程序稳定性与效率同时也降低bug出现率因此深刻理解每项技术背后理论至关重要.
60 16
|
2月前
|
缓存 并行计算 安全
关于Java多线程详解
本文深入讲解Java多线程编程,涵盖基础概念、线程创建与管理、同步机制、并发工具类、线程池、线程安全集合、实战案例及常见问题解决方案,助你掌握高性能并发编程技巧,应对多线程开发中的挑战。
|
2月前
|
数据采集 存储 前端开发
Java爬虫性能优化:多线程抓取JSP动态数据实践
Java爬虫性能优化:多线程抓取JSP动态数据实践
|
3月前
|
Java API 调度
从阻塞到畅通:Java虚拟线程开启并发新纪元
从阻塞到畅通:Java虚拟线程开启并发新纪元
302 83
|
3月前
|
安全 算法 Java
Java 多线程:线程安全与同步控制的深度解析
本文介绍了 Java 多线程开发的关键技术,涵盖线程的创建与启动、线程安全问题及其解决方案,包括 synchronized 关键字、原子类和线程间通信机制。通过示例代码讲解了多线程编程中的常见问题与优化方法,帮助开发者提升程序性能与稳定性。
139 0
|
3月前
|
存储 Java 调度
Java虚拟线程:轻量级并发的革命性突破
Java虚拟线程:轻量级并发的革命性突破
253 83