SeleniumGrid 4 - Jaeger(Enable Tracing)

Selenium Grid Enable Jaeger Steps(Windows)

1.下载ElasticSearch 和 Jaeger

1)我用的7.x的版本(Elasticsearch 7.16.3 | Elastic), 启动起来

 

 2)下载Jaeger(Windows Service Deployment — Jaeger documentation)

3)启动如下3个cmd命令 

jaeger-agent.exe --reporter.grpc.host-port=localhost:14250

set SPAN_STORAGE_TYPE=elasticsearch

jaeger-collector.exe --es.server-urls=http://localhost:9200 

set SPAN_STORAGE_TYPE=elasticsearch

jaeger-query.exe --es.server-urls=http://localhost:9200

4)打开Jaeger UI的[Port: 16686; URL: http://localhost:16686/search]

2.下载Selenium-Server-4.9.0, 启动Hub 和 Grid

1)下载地址(Release Selenium 4.9.0 · SeleniumHQ/selenium · GitHub)

 2)启动Hub

java -Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://localhost:14250 -Dotel.resource.attributes=service.name=selenium-grid-hub -jar selenium-server-4.9.0.jar --ext tracing-lib hub --healthcheck-interval 600

 Notes: --ext tracing-lib   这里tracing-lib是个文件夹 是下面2个dependency的所有lib文件

依赖2个dependency: io.opentelemetry:opentelemetry-exporter-jaeger:1.22.0 io.grpc:grpc-netty:1.45.0

 

 3)启动Node

java -Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://localhost:14250 -Dotel.resource.attributes=service.name=selenium-grid-node-1 -jar selenium-server-4.9.0.jar --ext tracing-lib node --config .\config.toml

 config.toml 文件如下

[node]
detect-drivers = false
port = 5555
grid-url = "http://192.168.1.4:4444"

[[node.driver-configuration]]
display-name = "Chrome"
stereotype = "{\"browserName\": \"chrome\", \"browserVersion\": \"112\", \"platformName\": \"Windows\", \"goog:chromeOptions\": {\"binary\": \"C:\\\\Program Files\\\\Google\\\\Chrome\\\\Application\\\\chrome.exe\"}}"
webdriver-executable = "C:\\tools\\chromedriver.exe"

[events]
publish = "tcp://192.168.1.4:4442"
subscribe = "tcp://192.168.1.4:4443"

 4) Selenium Grid启动如下

 3.执行Selenium Test

简单的Demo: 打开Baidu搜索

package org.selenium.test;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.openqa.selenium.support.CacheLookup;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.PageFactory;

import java.net.URL;
import java.util.Objects;
import java.util.concurrent.TimeUnit;

public class BaiduSearchPage {
    WebDriver driver;

    @FindBy(id = "kw")
    WebElement searchInput;

    @FindBy(id = "su")
    @CacheLookup
    WebElement searchButton;

    public BaiduSearchPage(WebDriver driver) {
        this.driver = driver;
        PageFactory.initElements(driver, this);
    }

    public void inputText(String search) {
        searchInput.sendKeys(search);
    }

    public void clickButton() {
        searchButton.click();
    }

    public static void main(String[] args) throws Exception {
        WebDriver driver = null;
        try {
            BaiduSearchPage searchPage;
            driver = new RemoteWebDriver(new URL("http://192.168.1.4:4444"), new ChromeOptions());
            driver.manage().window().maximize();
            driver.get("http://www.baidu.com");
            searchPage = new BaiduSearchPage(driver);
            searchPage.inputText("selenium");
            searchPage.clickButton();
            TimeUnit.SECONDS.sleep(5);
        } finally {
            if (Objects.nonNull(driver)) {
                driver.quit();
            }
        }


    }

}

 4.查看Jaeger上Selenium的Trace

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值