Automate Functional Testing for web applications to surpass biometrics - testing

I have a scenario where I want to automate my functional tests from the UI for a web application. Had it been simple I would have used a karate/similar framework to get the work done. The main caveat is to surpass the biometric scan in order to complete the functional tests. I know appium supports such a case for the mobile-native/ hybrid applications. But i want to know what are all the other tools that i can use to automate the same for a plain web applications. Thanks in advance.

Related

Should I mock APIs in end-to-end testing?

When you are doing e2e tests for your application, you want to test the whole application, not some portions of it like unit tests or integration testing.
But in some situations, people do mock APIs.
For example, when you have a massive microservice as your back-end, which makes your e2e tests very slow, or beside your own API, you rely on other third-party APIs, which makes your e2e tests fail occasionally.
So you only want to make sure that your front-end application works well, what should you do?
In my company, we have a massive system with a really heavy database which makes e2e testing very ineffective. Is it right to mock APIs in such a scenario?
My understanding here is that if you want to test only your front-end application (what is not E2E testing in my opinion) you can use unit tests instead. If you still want to test the user interface from the browser, then you can mock the APIs' responses, but still not being E2E testing.
In case you want to perform an end-to-end testing, then you shouldn't mock any database or API call.
The exception here is a third-party API that is not under your control. In that specific case you can mock it to have less external dependency in your tests, but if that third party changes and you are not aware of it, you wont't notice if it's mocked. Said that, if you mock third-party APIs be sure you have a fluent communication with the API provider to get alerts on changes before your app fails.

Is there a testing framework that will support GraphQL, web app testing, and mobile?

I have started to use Karate to test our mobile app which is using GraphQL and it is working good so far, though a bit of a learning curve for me as I am not a programmer by trade, but I need to look further into the future and be sure to find a framework that will also support our need to automate tests for our custom web applications as well. I would think Selenium would be the way to go so I am looking for a testing framework where I can test not only the GraphQL queries which our micro services/APIs are written, but also our web applications and our mobile app. We are a MS shop but if need be, as with Karate, we can venture into a different stack. Thanks!
Disclaimer: dev of Karate here.
I don't know about mobile, but teams have been successful mixing Karate and Selenium / WebDriver into a single integrated script, which is possible because of Karate's Java inter-op.
This is a Stack Overflow answer recommending the above approach and this answer is an update from the same team reporting success.
One more reason you may want to consider Karate is that it may be the only framework that allows you to re-use functional test scripts as performance tests, via Gatling integration (still in development).
Karate in my opinion is a "safe" choice as a testing framework, because it is technically Gherkin and "language neutral". This may be a surprise for those new to Karate, but it actually leans towards using JavaScript for scripting instead of Java.
Of course, it is worth mentioning that I have yet to find a framework that makes testing GraphQL as easy as how Karate does.
Selenium and Rest assured integration framework is the answer to your question. I created a test automation framework to test an ionic application which is using GraphQL api along with Rest webservices. I have used Testng and cucumber in my framework to perform web app side validations and used Rest assured along with GSON to validate the GraphQL and rest services. You can easily integrate appium in your framework along with selenium and rest assured to cater the need of mobile testing.

What are ESB test automation specific tools?

Give some examples for test automation tools used for testing an ESB?
Can Selenium be used for testing or are there any specific tools?
I believe Citrus is the standard in ESB automation testing. While I am not as familiar with Selenium, since it is browser automation, at a minimum it can be used for REST based service testing, as this can be done thru a typical browser without additional support.
Google Chrome Postman with jetpack can do both REST and SOAP.

Is MBaaS specifically for Hybrid applications or can also used for Native Applications?

I am researching MBaaS (Mobile Backend as a Service) and what its purpose is, for school. So far I gathered that it is basically a resource that developers can use so they can create the back-end code one time, rather than separately for each device - this way the focus can be more on the front-end of the development.
So my initial thoughts would be that this tool can be used only in the creation of Hybrid apps, however I'm having difficulty finding information to back that thought up. So can MBaaS be applied to Native apps also?
If the sense of meaning I've gathered about what MBaaS is used for is wrong, making my original question void or not applicable, a thorough but simple explanation, of what exactly MBaaS does would be very much appreciated.
MBaaS is a service that can be used by all – companies that are big to start ups and solo developers.
Mobile app development remains fun when it is about designing user interfaces, engineering social communication among users or bringing in stickiness. The Backend infrastructure plumbing is too time consuming and less rewarding. Worrying about database scaling, thread locking, persistence, user registration handling, messaging and pushing notifications is not fun. They are necessary evils that have to be taken care of to launch an app. The Baas paradigm has definitely made app development much easier and fun. Hence MBaaS services definitely present a powerful case for quick adoption.
Built.io Backend is an MBaaS provider. It is client platform agnostic. It provides platform-specific SDKs (iOS as well as Android) for native app development, and Xamarin and JavaScript SDKs for hybrid app development.
Coming back to your question. MBaaS can be used to develop native as well as hybrid applications. The services is not limited to a platform or any other technology.
PS: I am employee at built.io

Web services testing using Webdriver(SE)

Can we use selenium webdriver to test API. For example if we fill sign up form than can we check that API is called properly and the parameter we pass at sign up page are transfer at the web services?
No, Selenium webdriver is not supposed to test APIs. Yes but there are workaround you can do it in indirect way. But I'd suggest to use the tool which is meant to test APIs. There are few open source Java based DSL which you can use along with selenium.
One of them is Rest Assured.
Personally I liked this tool and integrated it with my selenium project. I use selenium to perform all the front-end operations which are required to call APIs.