Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Когда использовать mocks в юнит-тестировании



Когда использовать mocks в юнит-тестировании
2021-10-11 10:57

Оригинальная публикация

Автор оригинала: Vladimir Khorikov

Эта статья является переводом материала «When to Mock».

 

Использование моков в модульном тестировании является спорной темой. Автор оригинала заметил, что на протяжении всей своей карьеры в программировании он сначала перешел от моков почти над каждой зависимостью к политике «без моков», а затем к «только моки для внешних зависимостей».

 

Ни одна из этих практик не является достаточно хорошей. В этой статье Владимир Хориков покажет, какие зависимости следует мокать, а какие использовать как есть в тестах.

 

Читать статью полностью...



Найм тестировщиков и автоматизаторов
2021-10-27 10:23

Автор: Маарет Пюхяярве (Maaret Pyhäjärvi)
Оригинал статьи
Перевод: Ольга Алифанова

 

На совещании по найму нового тестировщика менеджер спросил меня, ищем ли мы мануального тестировщика или автоматизатора.

 

Время в моей голове остановилось, и я начала бесконечные размышления над ответом. Я ни то, ни другое, как и все мои коллеги. Однако в соседней команде один ручной тестировщик, а один – автоматизатор.

Неудивительно, что менеджер об этом спрашивает. Мы уже перешли на другой уровень – мы не подходим под эти определения. Мы и то, и другое. Вообще-то мы нечто третье – мы современные тестировщики-исследователи.

 

Читать статью полностью...



Хром обновился и перестал запускаться
2021-10-27 16:44

Суть проблемы: обновился хром и селениум перестал его запускать

Я пока плохо умею читать стэетрейс, не могу понять, в чем дело

 

"C:\Program Files\Java\jdk-11.0.10\bin\java.exe" -ea -Didea.test.cyclic.buffer.size=1048576 "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2020.2.3\lib\idea_rt.jar=60285:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2020.2.3\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2020.2.3\lib\idea_rt.jar;C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2020.2.3\plugins\testng\lib\testng-rt.jar;E:\обучение\test\EkaterinaGruzintceva_LevelUp\selenium1\target\test-classes;C:\Users\kate\.m2\repository\org\testng\testng\7.4.0\testng-7.4.0.jar;C:\Users\kate\.m2\repository\com\beust\jcommander\1.78\jcommander-1.78.jar;C:\Users\kate\.m2\repository\org\webjars\jquery\3.5.1\jquery-3.5.1.jar;C:\Users\kate\.m2\repository\junit\junit\4.13.2\junit-4.13.2.jar;C:\Users\kate\.m2\repository\org\hamcrest\hamcrest-core\1.3\hamcrest-core-1.3.jar;C:\Users\kate\.m2\repository\org\seleniumhq\selenium\selenium-java\3.141.59\selenium-java-3.141.59.jar;C:\Users\kate\.m2\repository\org\seleniumhq\selenium\selenium-api\3.141.59\selenium-api-3.141.59.jar;C:\Users\kate\.m2\repository\org\seleniumhq\selenium\selenium-chrome-driver\3.141.59\selenium-chrome-driver-3.141.59.jar;C:\Users\kate\.m2\repository\org\seleniumhq\selenium\selenium-edge-driver\3.141.59\selenium-edge-driver-3.141.59.jar;C:\Users\kate\.m2\repository\org\seleniumhq\selenium\selenium-firefox-driver\3.141.59\selenium-firefox-driver-3.141.59.jar;C:\Users\kate\.m2\repository\org\seleniumhq\selenium\selenium-ie-driver\3.141.59\selenium-ie-driver-3.141.59.jar;C:\Users\kate\.m2\repository\org\seleniumhq\selenium\selenium-opera-driver\3.141.59\selenium-opera-driver-3.141.59.jar;C:\Users\kate\.m2\repository\org\seleniumhq\selenium\selenium-remote-driver\3.141.59\selenium-remote-driver-3.141.59.jar;C:\Users\kate\.m2\repository\org\seleniumhq\selenium\selenium-safari-driver\3.141.59\selenium-safari-driver-3.141.59.jar;C:\Users\kate\.m2\repository\org\seleniumhq\selenium\selenium-support\3.141.59\selenium-support-3.141.59.jar;C:\Users\kate\.m2\repository\net\bytebuddy\byte-buddy\1.8.15\byte-buddy-1.8.15.jar;C:\Users\kate\.m2\repository\org\apache\commons\commons-exec\1.3\commons-exec-1.3.jar;C:\Users\kate\.m2\repository\com\google\guava\guava\25.0-jre\guava-25.0-jre.jar;C:\Users\kate\.m2\repository\com\google\code\findbugs\jsr305\1.3.9\jsr305-1.3.9.jar;C:\Users\kate\.m2\repository\org\checkerframework\checker-compat-qual\2.0.0\checker-compat-qual-2.0.0.jar;C:\Users\kate\.m2\repository\com\google\errorprone\error_prone_annotations\2.1.3\error_prone_annotations-2.1.3.jar;C:\Users\kate\.m2\repository\com\google\j2objc\j2objc-annotations\1.1\j2objc-annotations-1.1.jar;C:\Users\kate\.m2\repository\org\codehaus\mojo\animal-sniffer-annotations\1.14\animal-sniffer-annotations-1.14.jar;C:\Users\kate\.m2\repository\com\squareup\okhttp3\okhttp\3.11.0\okhttp-3.11.0.jar;C:\Users\kate\.m2\repository\com\squareup\okio\okio\1.14.0\okio-1.14.0.jar" com.intellij.rt.testng.RemoteTestNGStarter -usedefaultlisteners false -socket60284 @w@C:\Users\kate\AppData\Local\Temp\idea_working_dirs_testng.tmp -temp C:\Users\kate\AppData\Local\Temp\idea_testng.tmp
Starting ChromeDriver 95.0.4638.17 (a9d0719444d4b035e284ed1fce73bf6ccd789df2-refs/branch-heads/4638@{#178}) on port 37288
Only local connections are allowed.
Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.


org.openqa.selenium.WebDriverException: Timed out waiting for driver server to start.
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03'
System info: host: 'KATEC', ip: '192.168.27.209', os.name: 'Windows 8.1', os.arch: 'amd64', os.version: '6.3', java.version: '11.0.10'
Driver info: driver.version: ChromeDriver
at org.openqa.selenium.remote.service.DriverService.waitUntilAvailable(DriverService.java:202)
  at org.openqa.selenium.remote.service.DriverService.start(DriverService.java:188)
  at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:79)
  at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:552)
  at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:213)
  at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:131)
  at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:181)
  at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:168)
  at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:123)
  at ex1.Rgis.setUp(Rgis.java:22)
  at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  at java.base/java.lang.reflect.Method.invoke(Method.java:566)
  at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:133)
  at org.testng.internal.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:62)
  at org.testng.internal.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:385)
  at org.testng.internal.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:321)
  at org.testng.internal.TestInvoker.runConfigMethods(TestInvoker.java:700)
  at org.testng.internal.TestInvoker.invokeMethod(TestInvoker.java:527)
  at org.testng.internal.TestInvoker.invokeTestMethod(TestInvoker.java:173)
  at org.testng.internal.MethodRunner.runInSequence(MethodRunner.java:46)
  at org.testng.internal.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:824)
  at org.testng.internal.TestInvoker.invokeTestMethods(TestInvoker.java:146)
  at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:146)
  at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:128)
  at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
  at org.testng.TestRunner.privateRun(TestRunner.java:794)
  at org.testng.TestRunner.run(TestRunner.java:596)
  at org.testng.SuiteRunner.runTest(SuiteRunner.java:377)
  at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:371)
  at org.testng.SuiteRunner.privateRun(SuiteRunner.java:332)
  at org.testng.SuiteRunner.run(SuiteRunner.java:276)
  at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:53)
  at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:96)
  at org.testng.TestNG.runSuitesSequentially(TestNG.java:1212)
  at org.testng.TestNG.runSuitesLocally(TestNG.java:1134)
  at org.testng.TestNG.runSuites(TestNG.java:1063)
  at org.testng.TestNG.run(TestNG.java:1031)
  at com.intellij.rt.testng.IDEARemoteTestNG.run(IDEARemoteTestNG.java:66)
  at com.intellij.rt.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:109)
Caused by: org.openqa.selenium.net.UrlChecker$TimeoutException: Timed out waiting for [http://localhost:37288/status] to be available after 20011 ms
  at org.openqa.selenium.net.UrlChecker.waitUntilAvailable(UrlChecker.java:100)
  at org.openqa.selenium.remote.service.DriverService.waitUntilAvailable(DriverService.java:197)
  ... 40 more
Caused by: java.util.concurrent.TimeoutException
  at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:204)
  at com.google.common.util.concurrent.SimpleTimeLimiter.callWithTimeout(SimpleTimeLimiter.java:156)
  at org.openqa.selenium.net.UrlChecker.waitUntilAvailable(UrlChecker.java:75)
  ... 41 more




Test ignored.


===============================================
Default Suite
Total tests run: 1, Passes: 0, Failures: 0, Skips: 1
Configuration Failures: 1, Skips: 0
===============================================




Process finished with exit code 0

https://chromedriver.chromium.org/security-considerations прочитала по этой ссылке: 

ChromeDriver is a powerful tool, and it can cause harms in the wrong hands. While using ChromeDriver, please follow these suggestions to help keeping it safe:

    • By default, ChromeDriver only allows local connections. If you need to connect to it from a remote host, use --allowed-ips switch on the command line to specify a list of IP addresses that are allowed to connect to ChromeDriver.

    • If possible, run ChromeDriver with a test account that has no access to sensitive local or network data. ChromeDriver should never be run with a privileged account.

    • If possible, run ChromeDriver in a protected environment such as Docker or virtual machine.

    • Use firewall to prevent unauthorized remote connection to ChromeDriver.

    • If you are using ChromeDriver through third-party tools such as Selenium Server, be sure to protect the network ports of those tools as well.

    • Use the latest versions of ChromeDriver and Chrome.

И все равно не поняла, что надо сделать.

 



В избранное