Karate Ui automation - automation

Hi i am facing an issue with to read the table values by using script all when I am trying to execute getting this error “no step def method found for scriptAll” can you please any one can suggest how to resolve that issue?
I written like this
When def list = scriptAll('tr td', '_.textContent')

Probably you are on an old version of Karate. Upgrade.
If still facing issues, follow this process: https://github.com/karatelabs/karate/wiki/How-to-Submit-an-Issue

Related

Is there any way to store API response to a file while performing loadtest with Ghatling using karate

I am performing a load test with karate Gatling. As per my requirement, I need to create the booking and use the bookingId from the response and need to pass it to the update/cancel the booking request.
I have tried with below process:
In the test.feature file:
def createBooking = call read('createBooking')
def updateBooking = call read('updateBooking') { bookingid: createBooking.response.bookingId }
I am trying to apply 1000 ramp users at a time.
In the ghatling simulation file:
val testReq = scenario("testing").exec(karateFeature("classpath:test.feature"))
setUp(
testReq.inject(rampUsers(1000).during(1 seconds))
)
This process is unable to provide me the required throughPut. I am unable to find the bottleneck whether there is a problem with the karate or API server. In each scenario, we have both create and update bookings, so I am trying to capture all the 1000 bookings ids from the response during the load test and pass it to the update/cancel bookings. I will save it to a file and utilize the booking response for updating a booking. As I am new to Karate, can anyone suggest a way to store all the load test API responses to a file?
The 1.0 RC version has better support for passing data across feature files, refer this: https://github.com/intuit/karate/issues/1368
so in the scala code you should be able to do something like this:
session("myVarName").as[String]
And to get the RC version, see: https://github.com/intuit/karate/wiki/1.0-upgrade-guide
That said - please be aware that getting complex data-driven tests to work as a performance test is not easy, so yes - you will need to do some research. My suggestion is read and understand the info in the first link in this answer.
Writing to file is absolutely NOT recommended during a performance test. If you really want to go down that route, please read this: https://stackoverflow.com/a/54593057/143475
Finally if you are still stuck, please follow the instructions here: https://github.com/intuit/karate/wiki/How-to-Submit-an-Issue

Getting the error while trying to run the code for selenium/selenide script to execute script on browserstack

Error description -
java.lang.IllegalArgumentException: The class org.openqa.selenium.remote.RemoteWebDriver of the given context doesn't implement io.appium.java_client.FindsByIosNSPredicate nor io.appium.java_client.FindsByFluentSelector. Sorry. It is impossible to find something
Please help me if someone have any idea about it.
will add more details, if someone wants.
Looks like the element locator strategy FindsByIosNSPredicate and FindsByFluentSelector is not being captured by the default appium version. Can you try explicitly mentioning the appium version capability and pass the same as passed while executing your tests locally on a real device. You may refer to this: https://www.browserstack.com/automate/capabilities or https://www.browserstack.com/app-automate/capabilities ( for App )

getting Undefined step: When method GET error while running Cucumber test although test is mapped with Kararte

When method GET
Then status 200
ERROR
Undefined step: When method GET
Undefined step: Then status 200
despite its getting StepDefs file of Karate.
Not able to execute the test case through Karate
From your comment, it is clear you are trying something which Karate does not support.
I am integrating with our existing Cucumber Framework.
This may be possible in a future version, but please read this ticket very carefully, and if needed continue the discussion there:
https://github.com/intuit/karate/issues/444

Handling self-refreshing pages (ajax) from selenium

I am new to selenium.
I have same problem with for which you have already answered,
I have attached my code here and explained where I am getting ajax problem.
I just started building my framework, it is just a groundwork I am doing and and stuck.
I try to use your code, getting errors.
with session() method I am getting error (expecting object).
TIMEOUT
what am I need to do to run your methods.
with Selenium2 have we got any new functionalities that are dealing with Ajax?

Selenium RC - t.replace is not a function

[edit for godman] I am working on a web based application, written in PHP. I am using Selenium RC to run tests on the webpages produced by this application, through a browser.
I just upgraded to Firefox 14, so I had to upgrade to Selenium RC 2.25.0.
Now I'm seeing this error when running a test with htmlSuite:
Command execution failure. Please search the user group at
https://groups.google.com/forum/#!forum/selenium-users for error
details from the log window. The error message is: t.replace is not a
function
The command executed is:
clickAndWait //a[text()='! selenium test customer']
As you can see, it's not doing anything too tricky - just clicking a link. The test runs fine in the IDE, it's just when run via RC that it's a problem.
Searching in the groups revealed only really old threads dating back to version 1 of selenium.
Any ideas anyone?
[edit] I've been running the test that has these problems several times a day for the last week - and it doesn't seem to fail like this every time. This looks like it's a random problem. Has anyone seen this happen before?
[edit after the bounty got me no answers] Another example of it failing is with:
clickAndWait css=a.edit_company
This same call works fine earlier in the same test, on the same page.
[edit] Now I'm seeing the same error with a completely separate command:
type id=Address1 Address1
Does anyone have any suggestions about this? Any way I can even debug what's going on (I don't see this in the IDE at all)
I am not terribly familiar with clickAndWait. I personally prefer clicking and then doing my own custom waiting.
Try just clicking and add a Thread.Sleep(5000), or something similar, and see if the error is a result of the click or the wait part.
If it is the wait part, then I have a different suggestion than if it is the click part.
I've seen similar issues across various platforms. It has always been somewhat random for me, so I don't use clickandWait. Generally is is much more reliable to do a plain click, and then wait for specific condition. You could do a waitforpageload, but that has also been unreliable for me so I prefer things like waitfortextpresent and waitforelementpresent.
Usually, this kind of error would occur if you are dealing with something that is not a string. Could you just make sure that you are dealing with strings only?
2 possibilities where it is arising from:-
When text() is executed -> it might be dealing with a non-string
a[expression] -> the expression(text() = '! selenium test customer') when evaluated to False/True might be the problem because if a is a Map/array, the corresponding key should be a string and not a bool, probably.
text()='! selenium test customer' -->> is it an assignment operation? if yes, make sure that text() returns a lvalue or a mutable object (based on the language you are using selenium rc with)