Перейти к содержимому

Публикации Alemix

34 публикаций создано Alemix (учитываются публикации только с 20 апреля 2023)



#170567 Настройка параллельного запуска тестов в Selenoid

Отправлено автор: Alemix 22 января 2019 - 19:13 в Автоматизированное тестирование

Здравствуйте.

Запускаю параллельно тесты через Selenoid и получается, что тесты выполненные в 6 потоков (первая выделенная зона) потребляют примерно на 40 процентов больше, чем тесты запущенные в один поток (вторая выделенная зона). Это нормально для Селеноида? Я ожидал, что разница будет примерно в 6 раз. Запуск осуществляется через maven-surefire-plugin

 

https://prnt.sc/mapqlb




#170523 Rest Assured получение данных из Json файла

Отправлено автор: Alemix 19 января 2019 - 06:06 в Автоматизированное тестирование

Здравствуйте. Есть задача: получить данные для авторизации из Json файла  {"account":{"login":"acc_login","password":"acc_pass"}}

 

Сделано:

1. Создан файл auth.json содержащий {"account":{"login":"acc_login","password":"acc_pass"}}

2. Попытка обратиться к файлу:

public static void response() {
Response response =
given().log().all().
contentType(ContentType.JSON).
basePath("E:\\Selenium\\Snap\\src\\test\\Files\\auth.json").
when().
get().
then().extract().response();

System.out.println("Ответ: " + response.getBody().asString());
}

3. Обращение идет не к указанному файлу, а к http://localhost:808...Files\auth.json

Вопрос: Как заставить Rest Assured получить данные из файла?

 

Request method: GET
Request URI: http://localhost:8080/E%3A%5CSelenium%5CSnap%5Csrc%5Ctest%5CFiles%5Cauth.json
Proxy: <none>
Request params: <none>
Query params: <none>
Form params: <none>
Path params: <none>
Headers: Accept=*/*
Content-Type=application/json; charset=UTF-8
Cookies: <none>
Multiparts: <none>
Body: <none>


java.net.ConnectException: Connection refused: connect


at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:121)
at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:180)
at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:326)
at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:610)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:445)
at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:835)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:56)
at org.apache.http.client.HttpClient$execute$0.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:133)
at io.restassured.internal.RequestSpecificationImpl$RestAssuredHttpBuilder.doRequest(RequestSpecificationImpl.groovy:2129)
at io.restassured.internal.http.HTTPBuilder.doRequest(HTTPBuilder.java:494)
at io.restassured.internal.http.HTTPBuilder.request(HTTPBuilder.java:451)
at io.restassured.internal.http.HTTPBuilder$request$2.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:149)
at io.restassured.internal.RequestSpecificationImpl.sendHttpRequest(RequestSpecificationImpl.groovy:1532)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1213)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1022)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:810)
at io.restassured.internal.RequestSpecificationImpl.invokeMethod(RequestSpecificationImpl.groovy)
at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.call(PogoInterceptableSite.java:48)
at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.callCurrent(PogoInterceptableSite.java:58)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:52)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:154)
at io.restassured.internal.RequestSpecificationImpl.sendRequest(RequestSpecificationImpl.groovy:1290)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1213)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1022)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:810)
at io.restassured.internal.RequestSpecificationImpl.invokeMethod(RequestSpecificationImpl.groovy)
at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.call(PogoInterceptableSite.java:48)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:149)
at io.restassured.internal.filter.SendRequestFilter.filter(SendRequestFilter.groovy:30)
at io.restassured.filter.Filter$filter$0.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
at io.restassured.filter.Filter$filter.call(Unknown Source)
at io.restassured.internal.filter.FilterContextImpl.next(FilterContextImpl.groovy:72)
at io.restassured.filter.time.TimingFilter.filter(TimingFilter.java:56)
at io.restassured.filter.Filter$filter.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
at io.restassured.filter.Filter$filter.call(Unknown Source)
at io.restassured.internal.filter.FilterContextImpl.next(FilterContextImpl.groovy:72)
at io.restassured.filter.log.RequestLoggingFilter.filter(RequestLoggingFilter.java:124)
at io.restassured.filter.Filter$filter.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:141)
at io.restassured.internal.filter.FilterContextImpl.next(FilterContextImpl.groovy:72)
at io.restassured.filter.FilterContext$next.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:133)
at io.restassured.internal.RequestSpecificationImpl.applyPathParamsAndSendRequest(RequestSpecificationImpl.groovy:1732)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1213)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1022)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:810)
at io.restassured.internal.RequestSpecificationImpl.invokeMethod(RequestSpecificationImpl.groovy)
at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.call(PogoInterceptableSite.java:48)
at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.callCurrent(PogoInterceptableSite.java:58)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:52)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:154)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:182)
at io.restassured.internal.RequestSpecificationImpl.applyPathParamsAndSendRequest(RequestSpecificationImpl.groovy:1738)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1213)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1022)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:810)
at io.restassured.internal.RequestSpecificationImpl.invokeMethod(RequestSpecificationImpl.groovy)
at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.call(PogoInterceptableSite.java:48)
at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.callCurrent(PogoInterceptableSite.java:58)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:52)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:154)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:182)
at io.restassured.internal.RequestSpecificationImpl.get(RequestSpecificationImpl.groovy:170)
at io.restassured.internal.RequestSpecificationImpl.get(RequestSpecificationImpl.groovy)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1213)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1022)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:810)
at io.restassured.internal.RequestSpecificationImpl.invokeMethod(RequestSpecificationImpl.groovy)
at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.call(PogoInterceptableSite.java:48)
at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.callCurrent(PogoInterceptableSite.java:58)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:52)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:154)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:166)
at io.restassured.internal.RequestSpecificationImpl.get(RequestSpecificationImpl.groovy:254)
at io.restassured.internal.RequestSpecificationImpl.get(RequestSpecificationImpl.groovy)
at SnapchatLogic.response(SnapchatLogic.java:47)
at SnapchatLogic.snapWork(SnapchatLogic.java:56)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)

 




#170444 Параллельные тесты выполняются в одном окне

Отправлено автор: Alemix 17 января 2019 - 04:25 в Автоматизированное тестирование

Спасибо. Ну, может быть, кому-нибудь будет полезно ))




#170442 Параллельные тесты выполняются в одном окне

Отправлено автор: Alemix 17 января 2019 - 02:14 в Автоматизированное тестирование

починил свой класс -все нормально вставляет параллельно - 

Может быть, расскажете как починили? Что читали?




#170369 Как убрать capability из тестов?

Отправлено автор: Alemix 12 января 2019 - 06:14 в Автоматизированное тестирование

Здравствуйте Есть довольно длинный список capability настраивающих драйвер перед выполнением тестов. Эта портянка, конечно, не сильно мешает жить, но хочется сделать, что-то хорошее )) Можно ли ее убрать в отдельный файл?

 

Я создал файл "chrome.capabilities", скопировал в него capabilities. А что делать дальше?




#170344 Параллельные тесты выполняются в одном окне

Отправлено автор: Alemix 09 января 2019 - 18:15 в Автоматизированное тестирование

Здравствуйте, я использую JUnit. Запускаю параллельно в 2 потока выполнение тестов. Открывается 2 браузера, но оба теста выполняются только в одном из-за чего тесты, конечно, валятся. Почему так происходит?

 

driver = new ChromeDriver(options); вызывается перед каждым тестом.

 

Параллельность определяю так:

<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M3</version>
<configuration>
<parallel>methods</parallel>
<threadCountMethods>2</threadCountMethods>
<perCoreThreadCount>false</perCoreThreadCount>

.....




#170102 Присвоение элементу нужных координат

Отправлено автор: Alemix 14 декабря 2018 - 14:36 в Автоматизированное тестирование

У Селениума есть свои методы, но они что-то тоже не хотят работать:

element.getLocation().move(700, 380);
element.getLocation().moveBy(700,380);




#170101 Присвоение элементу нужных координат

Отправлено автор: Alemix 14 декабря 2018 - 14:24 в Автоматизированное тестирование

У меня с экзекутором вечная беда. Добавил: ((JavascriptExecutor) driver).executeScript("window.scrollTo("+ (element.getLocation().x + 1) + ", " + (element.getLocation().y + 300) + ")");

но элементы не реагируют. 




#170099 Присвоение элементу нужных координат

Отправлено автор: Alemix 14 декабря 2018 - 13:43 в Автоматизированное тестирование

Нужно проскролить.

Селениум скролит до середины элемента, все, что ниже он не видит. Мне необходимо сделать так, чтобы был виден нижний (или верхний край элемента, зависит от того куда крутим), так как я не придумал как это сделать, решил, что нужно крутить до тех пор, пока элемент не будет в центре экрана.




#170097 Присвоение элементу нужных координат

Отправлено автор: Alemix 14 декабря 2018 - 13:29 в Автоматизированное тестирование

Здравствуйте. Хочу сделать так, чтобы перед нажатием на элемент этот элемент отображался в середине экрана. Для этого, видимо, элементу нужно передать координату Y = половине экрана. Подскажите, пожалуйста, Селениум предоставляет такую возможность?




#169937 Хром видит локатор только после его редактирования

Отправлено автор: Alemix 06 декабря 2018 - 15:45 в Автоматизированное тестирование

Если проблема только у меня, то не регрессия ))




#169933 Хром видит локатор только после его редактирования

Отправлено автор: Alemix 06 декабря 2018 - 12:19 в Автоматизированное тестирование

Что значит не видит? StaleElementException? 

Нет. В инструментах разработчика. На первом скриншоте найден 1 элемент, на втором не найдено ни одного после обновления страницы

 

у вас не локатор, а ужас летящий на крыльях ночи, напишите нормальный (используйте классы, другие атрибуты и еще что-нибудь).

https://www.guru99.c...h-selenium.html

 

я не поняла, где вы его редактируете - в разметке или в тесте или в консоли? возможно, после взаимодействия со страницей ее структура меняется и появляется еще один див (что-то становится жирным или в фокусе или еще че-нить).

Это локатор для примера.  Редактирую в консоли. Если бы структура менялась, то элемент не находился бы и после удаления любого символа из локатора и его возврата.




#169925 Хром видит локатор только после его редактирования

Отправлено автор: Alemix 05 декабря 2018 - 16:56 в Автоматизированное тестирование

Здравствуйте.

На скрине локатор, который Хром видит на странице http://prntscr.com/lr4taf, но стоит обновить страницу, как Хром перестает видеть этот элемент http://prntscr.com/lr4twf.

Для того, чтобы элемент нашелся на странице я должен удалить из локатора хотя бы один символ и вернуть его. С чем это связано и как можно избежать? 




#169660 Минимальное железо для запуска автоматизированных тестов.

Отправлено автор: Alemix 23 ноября 2018 - 17:43 в Автоматизированное тестирование

Спасибо




#169656 Минимальное железо для запуска автоматизированных тестов.

Отправлено автор: Alemix 23 ноября 2018 - 13:29 в Автоматизированное тестирование

ОС - Ubuntu.

Я всех задач не знаю, из подвластного мне только прогон тестов.




#169640 Минимальное железо для запуска автоматизированных тестов.

Отправлено автор: Alemix 22 ноября 2018 - 18:04 в Автоматизированное тестирование

Вот файл подкачки: http://prntscr.com/llpq44

Процессор: http://prntscr.com/llpr6w

Про процессор знаю только, что у него 2 ядра




#169637 Минимальное железо для запуска автоматизированных тестов.

Отправлено автор: Alemix 22 ноября 2018 - 17:16 в Автоматизированное тестирование

Да я наблюдаю. По провалам в свободной оперативе видно когда запускаются тесты )) http://prntscr.com/llp3rw

 

Вопрос в том, сколько должно оставаться свободной оперативы, чтобы тесты корректно работали?




#169634 Минимальное железо для запуска автоматизированных тестов.

Отправлено автор: Alemix 22 ноября 2018 - 16:23 в Автоматизированное тестирование

Это вопрос с собеседования?

Нет. Это вопрос с нестабильно работающих тестов.




#169632 Минимальное железо для запуска автоматизированных тестов.

Отправлено автор: Alemix 22 ноября 2018 - 15:32 в Автоматизированное тестирование

4 гига 2 ядра

Спасибо




#169631 Минимальное железо для запуска автоматизированных тестов.

Отправлено автор: Alemix 22 ноября 2018 - 15:31 в Автоматизированное тестирование

до параметров при которых автотесты не запустятся опускаться не стоит. По хорошему даже не стоит опускаться до параметров при которых автотесты будут выполнятся неприемлемо медленно. 

 

ЗЫ: на прошлом проекте для автотестов был задействован кластер на 500 нод 16-24 ядер процессора на каждой.

Вот чтобы подняться с параметров на которых сейчас запускаются тесты я и пытаюсь собрать мнения более опытных тестировщиков ))




#169628 Минимальное железо для запуска автоматизированных тестов.

Отправлено автор: Alemix 22 ноября 2018 - 15:11 в Автоматизированное тестирование

Понимаю, что много от чего зависит, но все же, железо ниже каких параметров лучше не использовать для запуска автоматических тестов?

 




#168584 Как протестировать копирование текста в буфер обмена

Отправлено автор: Alemix 19 сентября 2018 - 17:55 в Автоматизированное тестирование

Не было печали, но на сервере с TeamCity стоит консольная Ubuntu и, буфер обмена отсутствует.

 

Слова системного администратора: "У Вас работает потому что имеется полноценное окружение рабочего стола. Во время тестов всё работает в xvfb так называемый виртуальный рабочий стол. В нем отсутствует буфер обмена"

 

В качестве решения нашел вариант: "Используя библиотеку gnome, вы можете вызвать метод хранилища в буфере обмена и исправить это", но как это сделать подробно не написано

 

Что нужно доустановить  в Ubuntu для корректной работы тестов?




#168393 Как протестировать копирование текста в буфер обмена

Отправлено автор: Alemix 11 сентября 2018 - 03:51 в Автоматизированное тестирование

Существует различие во взаимодействии Java с буфером обмена Win и Ubuntu? 

 

P.S. похоже, что не существует. Спасибо, на Ubunte так же сработало:

 
Clipboard c=Toolkit.getDefaultToolkit().getSystemClipboard();
 
try {
                    driver.get(c.getData( DataFlavor.stringFlavor).toString());
                } catch (UnsupportedFlavorException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }



#168389 Как протестировать копирование текста в буфер обмена

Отправлено автор: Alemix 10 сентября 2018 - 17:04 в Автоматизированное тестирование

Здравствуйте. На сайте Webdriver-ом кликаю на кнопку, после чего в буфер обмена должен сохраниться url страницы (не та на которой я нахожусь).

Хочу передать сохраненное значение в driver.get("Значение из буфера");  - проверить, что url действительно сохранился в буфер и за одно, что он рабочий.

 

Как можно передать значение из буфера в driver.get?




#168388 Как посмотреть отправляемый запрос в Rest assured

Отправлено автор: Alemix 10 сентября 2018 - 16:54 в Автоматизированное тестирование

Спасибо. В интернете поискал, а в документации к библиотеке не догадался ))