JMeter — клиентская часть для мобильных устройств в Safari

#jmeter #mobile-safari #performance-testing #client-side #jsr223

#jmeter #mobile-safari #тестирование производительности #на стороне клиента #jsr223

Вопрос:

У меня есть браузер Safari на Win с установленным на нем webdriver и следующим кодом в JSR223 для Safari:

 import org.openqa.selenium.safari.SafariOptions;
import org.openqa.selenium.safari.SafariDriver;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;

import java.util.concurrent.TimeUnit;

Map<String, Object> mobileEmulation = new HashMap<>();
mobileEmulation.put("userAgent", "vars.get("userAgent")");
Map<String, Object> safariOptions = new HashMap<>();
safariOptions.put("mobileEmulation", mobileEmulation);

SafariOptions safari = new SafariOptions();
options.setExperimentalOption("mobileEmulation", mobileEmulation);

SafariDriver driver = new SafariDriver(options);

driver.get("url");

WebDriverWait wait = new WebDriverWait(driver, 20);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("xpath")));
driver.findElement(By.xpath("xpath")).click();
  
vars.putObject("driver", driver);
  

Следуют сообщения об ошибках:

 Response code:500
Response message:javax.script.ScriptException: org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
Script19.groovy: 2: unable to resolve class org.openqa.selenium.safari.SafariOptions
 @ line 2, column 1.
   import org.openqa.selenium.safari.SafariOptions;
   ^

Script19.groovy: 3: unable to resolve class org.openqa.selenium.safari.SafariDriver
 @ line 3, column 1.
   import org.openqa.selenium.safari.SafariDriver;
   ^

2 errors
  

Не могли бы вы, пожалуйста, помочь мне найти, чего мне не хватает?

Ответ №1:

Что касается ошибки, которую вы получаете, похоже, что у вас нет selenium-safari-driver в JMeter Classpath, поэтому вам нужно загрузить соответствующий файл .jar, поместить его в папку «lib» вашей установки JMeter и перезапустить JMeter, чтобы получить библиотеку.

Что касается вашего раздела «Браузер Safari на Win», вы абсолютно уверены, что это то, что вы действительно хотите делать? Версия Safari EOL для Windows была выпущена в 2012 году, и я не думаю, что вам следует инвестировать в автоматическое тестирование браузера 8-летней давности.

В дальнейшем я думаю, что эта строка:

 mobileEmulation.put("userAgent", "vars.get("userAgent")");
  

должно выглядеть так:

 mobileEmulation.put("userAgent", vars.get("userAgent"));
  

Я также не вижу допустимого варианта использования JMeter там, если вам нужно имитировать различные браузеры, выполняющие тест производительности — вы можете легко отправить соответствующий заголовок User-Agent с помощью HTTP Header Manager и выполнить загрузку с использованием обычных пробоотборников для HTTP-запросов JMeter, и если вы просто создаете автоматические тесты — вам вообще не нужен JMeter

Комментарии:

1. Спасибо, Дмитрий Т!