jProfiler timings on the Call Tree with Thread Status "All States" - jprofiler

The time for e.g. 187 seconds displayed against a URL invocation is the actual wall clock time right?( Thread Status: All States).
Now, when I look at Method Statistics view , I could see the same time for 187 seconds against the URL. However, I see other methods in the execution path takes more than 187 seconds. IS this because both of these are from different perspectives?
Thanks very much!

Related

API occasionally hangs for an amount of time in a narrow range

Trying to connect to the etherscan API to listen for some addresses changing and print the time that the response takes. Doing this in an async loop for 13 addresses.
The code:
url = 'https://api.etherscan.io/api?module=account&action=txlist&address=' + address + '&startblock=0&endblock=99999999&sort=asc&apikey=' + api_token
response = requests.get(url)
print("Response received after this much time: " + str(response.elapsed.total_seconds()))
For the overwhelming majority (98%) of the time, this prints an amount between .64 and .66 seconds.
The problem:
of the 2% of the time its not that delay, 80% of the time its between 1.66 and 1.68 seconds. The remaining 20% of the time, it is either ~3.7, ~5.7, or between 129.8 and 130.2 seconds.
I am mostly just concerned with the rare 130 second delays, and I'm hoping that the strangely consistent delays are a sign of something.
My rate limits are 5/second and 100k/day.
Any way to diagnose why this would be?

Catchpoint pause vs. waitForNoRequest - What's the difference?

I have a test that was alerting because it was taking extra time for an asset to load. We changed from waitForNoRequest to a pause (at Catchpoint's suggestion). That did not seem to have the expected effect of waiting for things to load. We increased the pause from 3000 to 12000 and that helped to allow the page to load and stop the alert. We noticed some more alerts, so I tried to increase the pause to something like 45000 and it would not allow me to pause for that long.
So the main question here is - what functionality does both of these different features provide? What do I gain by pausing instead of waiting, if anything?
Here's the test, data changed to protect company specific info. Step 3 is where we had some failures and we switched between pause and wait.
// Step - 1
open("https://website.com/")
waitForNoRequest("2000")
click("//*[#id=\"userid\"]")
type("//*[#id=\"userid\"]", "${username}")
setStepName("Step1-Login-")
// Step - 2
clickMouseAndWait("//*[#id=\"continue\"]")
waitForVisible("//*[#id=\"challenge-password\"]")
click("//*[#id=\"challenge-password\"]")
type("//*[#id=\"challenge-password\"]", "${password}")
setStepName("Step2-Login-creds")
// Step - 3
clickMouseAndWait("//*[#id=\"signIn\"]")
setStepName("Step3-dashboard")
waitForTitle("Dashboard")
waitForNoRequest("3000")
click("//*[#id=\"account-header-wrapper\"]")
waitForVisible("//*[#id=\"logout-link\"]")
click("//*[#id=\"logout-link\"]")
// Step - 4
clickAndWait("//*[text()=\"Sign Out\"]")
waitForTitle("Login - ")
verifyTextPresent("You have been logged out.")
setStepName("Step5-Logout")
Rachana here, I’m a member of the Technical Service Team here at Catchpoint, I’ll be happy to answer your questions.
Please find the differences below between waitForNoRequest and Pause commands:
Pause
Purpose: This command pauses the script execution for a specified amount of time, whether there are HTTP/s requests downloading or not. Time value is provided in milliseconds, it can range between 100 to 30,000 ms.
Explanation: This command is used when the agent needs to wait for a set amount of time and this is not impacted by the way the requests are loaded before proceeding to the next step or command. Only a parameter is required for this action.
WaitForNoRequest
Purpose: This commands waits for a specified amount of time, when there was no HTTP/s requests downloading. The wait time parameter can range between 1,000 to 5,000 ms.
Explanation: The only parameter for this action is a wait time. The agent will wait for that specified amount of time before moving onto the next step/command. Which will, in return, allow necessary requests more time to load after document complete.
For instance when you add waitforNoRequest(5000), initially agent waits 5000 ms after doc complete for any network activity. During that period if there is any network activity, then the agent waits another 5000 ms for the next network activity to end and the process goes on until no other request loads within the specified timeframe(5000 ms).
A pause command with 12000 ms, gives exactly 12 seconds to load the page. After 12 seconds the script execution will continue to next command no matter the page is loaded or not.
Since waitForNoRequest has a max time value of 5000 ms, you can tell the agent to wait for a gap of 5 seconds when there is no network activity. In this case, the page did not have any network activity for 3 seconds and hence proceeded to the next action. The page was not loaded completely and the script failed.
I tried to increase the pause to something like 45000 and it would not allow me to pause for that long.
We allow a maximum of 30 seconds pause time hence 45 seconds will not work.
Please reach out to our support team and we’ll be glad to connect you with our scripting SMEs and help you with any scripting needs you might have.

scrapy timeout not controlling twisted timeout

I keep getting this when I run my scrapy spider raise TimeoutError("Getting %s took longer than %s seconds." % (url, timeout))
twisted.internet.error.TimeoutError: User timeout caused connection failure: Getting https://www.exampletest.com/test took longer than 190 seconds..
I have set the following settings but didn't help
'AUTOTHROTTLE_ENABLED':False,
'DOWNLOAD_TIMEOUT':20,
'RETRY_ENABLED': False,
How can I control if the website doesn't respond in under 30 sec to just pass or ignore it.
190 is a weird default, so I’ll go ahead and assume that you are using scrapy-crawlera.
If that is the case, know that scrapy-crawlera ignores DOWNLOAD_DELAY because Crawlera requires higher timeout values, as requests through Crawlera can take much longer.
If you want to decrease the timeout value nonetheless, change CRAWLERA_DOWNLOAD_TIMEOUT instead.

Karate DSL surefire - reports duplicated time

In my work, we implemented a lot le features that call another feature because de reuse scenarios for many scenarios.
But, when see the html reporte, this one show 5 minutes execution when, in console said 2.5 minutes.
We found in sunfire reports that the time of the feature son, the step that call a web service delay 30 ms, but also the step that call this feature son has 30 ms. So is 60 ms.
feature parent
call (feature Son.feature) 30ms
this is the son
given url 0 ms
where status 200 30 ms
feature report
Column duration 60 ms
Excuse me por my bad english. Thanks for any help
2 things.
If you use the parallel runner, you will see different time (actual / elapsed)
When you call features, just focus on the time reported by the parent
Can you refer this video, so you can troubleshoot better: https://twitter.com/KarateDSL/status/1049321708241317888

How to calculate total response time in jmeter?

I have send 10 consecutive http requests in jmeter.
I have stored output as csv file.
endTimeMillis responseTime latency sentBytes receivedBytes responseCode
1357279943.984 1426 1426 347 287 200
1357279944.685 1888 1888 347 287 200
..............
..............
In above output file response time displayed by each request. But i need to calculate total response time for 10 requests.
How to calculate total response time in jmeter?
You need a Transaction Controller. Put elements times of which you want to sum under it. Transaction controller will then appear in all your listeners. Its load and latency times will be sums of those parameters of its nested elements.
Note that this time by default includes all processing within the controller scope, not just the samples, this can be changed by unchecking "Include duration of timer and pre-post processors in generated sample".