appium / java-client

Java language binding for writing Appium Tests, conforms to W3C WebDriver Protocol
Apache License 2.0
1.2k stars 755 forks source link

Getting garbled Appium logs when I am trying to programmatically start Appium on and ios simulator and android device in parallel #1972

Open paruladhikari-helpshift opened 1 year ago

paruladhikari-helpshift commented 1 year ago

Do I have the most recent component updates?

Is the component officially supported by the Appium team?

Is there an existing issue for this?

Current Behavior

I am trying to programmatically start Appium server on 2-4 different devices, different/ same platforms in parallel and it isn't working at the moment with a great success rate. Out of the 5 times I ran it, it fails 4 times.

Here are my Appium logs: [Appium] Welcome to Appium v1.22[ 35[[3A5pmp[iAupmp]i9mm] [e3l9cm oNme otno- dAepfpaiulutm sve1r.v2e2r. 3 ar[s3:5 m[[p3p5imu[mA]pm Nionu-md]e[a3u9lmt s erpvoerrt :a r6g3s8:2 7 [Appium] port: 63826 [Appium] Appium REST ht[p 3i5nmt[eArpfpaicue ml]i[t3e9nme rA psptiaurmt eRdE SoTn h0.0.t0t.p0 :i6n3t8e2r7f ace listener started on 0.0.0.0:63826 [HTTP] --> GET[[3395mm [[T3TP7]mwd/3h9umb/st a[u3s7[-3-9>m [3[m3 5[[H37TmTGPE]T[39[m3 9[ 9[m3{7}mw3d9/mh ub[/dsetbautgu]s [[3395mm[ [HTTP][E3N9EmR I[9]0[{3}9[ 3C9allinmg A[pdpeibuumgD]r i[e3r5.mg[eGtESNtEaRtIuCs]( 3w9imt hC aalrlgisn:g [A]p piu[mdDerbiuvge] rg3e5tmS[tGaEtNuEsR(I)C ]w[t3h9 ma rRgess:p o[n]d in[gd etbou gc]l i[n3t5 mw[iGtEhN EdRrIiCv]e[.3g9emt SRteastpuosn(d) irnegs utlot :c l{i"ebnuti lwdi"th: {d"rvievresri.ogne"t:S"t1a.t2u2s.(3)" }r}e sult: {"build":{"version":"1.22.3"}} [HTTP] <-- GET /wd/hub/status 200 5 ms - 68 [HTTP][39[m3 5[[90HmT[P3]9[ 39m <-- GET /wd/hub/status 200 5 ms - 68 [HTTP] Asserting whether server started... Asserting whether server started... [HTTP] --> GET /wd/hub/status [3[35m[HTTP] m3H7TmT-P-]>[[3399mm [90m{}393m7 mGE[Td[b3u9gm] [[3375mm/[wGdE/NhEuRbI/Cs]t[t3u9smC3a9lml ing A[pHpTiTuPm]D[i3v9emr .[e9t0Smt{a}t[s3(9)m w[idtehb uagr]g s[ 3[5]m [GE[NERIC]d eCbaulgl]i n[ 3A5pm[pGiEuNmEDrRiIvCe]r.g eRteSstpaotnudsi(n)g wtiot hc lairegns: [] [debug] [GENERIC] Responding to client with driver.getStatus() result: {"build":{"vet rwsiitohn "d:r"iv1e.r2.2g.e3t"S}t}a tus( 3r5ems[uHlTtT:P ]{"9umi l["3:7{m"<v-e-r sGiEoTn "/:w"d1/.h2u2b.3"}} /st[t3us5 mH3T9TmP The logs get stuck here ^^ and rest of the execution doesn't start

Please note that my Appium version is 1.22.3 and I cannot upgrade to >2 since there is a java-client limitation.

Expected Behavior

I want the Appium server to start at least for a parallel run with 4 devices.

Minimal Reproducible Example

This is what my testNG.xml looks like: `<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">

` This is how I am starting the Appium server. It is failing at server.start(); `public synchronized void startAppiumServer() throws Exception { if (Globals.PLATFORM.equalsIgnoreCase("web")) return; /* Check if a server is already running for this device */ if (!servers.containsKey(udidPerThread.get())) { int port = getAvailablePort(); AppiumServiceBuilder appiumServiceBuilder = new AppiumServiceBuilder(); appiumServiceBuilder.usingPort(port); AppiumDriverLocalService server = AppiumDriverLocalService.buildService(appiumServiceBuilder); server.start(); Assert.assertTrue(server.isRunning()); servers.put(udidPerThread.get(), server); System.out.println("Appium Server Started successfully for device " + udidPerThread.get() + " on port " + port); } currentDevice.set(udidPerThread.get()); }` ### Environment - Operating system: MAC Ventura 13.1 - Appium server version (output of `appium --version`): 1.22.3 - Node.js version (output of `node --version`): v16.13.2 - `npm` version (output of `npm --version`): 8.6.0 - Platform and version under test: ios simulator v16.0, android emulator v11, android real device v13 ### Link to Appium Logs _No response_ ### Futher Information _No response_
mykola-mokhnach commented 1 year ago

Such behaviour is expected if you redirect the output of multiple processes into the same console and has nothing to do with the server itself.

paruladhikari-helpshift commented 1 year ago

I don't have any issues with the disordered logs, but the problem arises during the execution of the server. The log entries halt at a specific point (as noted in the earlier discussion) and consequently, the remaining automation processes do not proceed.

mykola-mokhnach commented 1 year ago

Maybe some internal deadlock is happening. Try to split log streams or disable server logging completely