Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 8 years ago.
Improve this question
I cant stop myself for asking this question as SO is not an alternative for search engine, as we are exhausted searching the right content to start testing a Spring MVC application. We are very new to spring and unit testing. Please provide us links for step-by-step tutorial(if any) for Spring REST services testing and Controller testing and Spring security testing.
Please Help.
Thanks in advance.
The controller.
If you want to test the code of the controller itself (returning correct ModelAndView or ModelMap), you can easily write some unit tests.
I usually use the spring-test and junit for this.
Then I write my test like this:
#RunWith(SpringJUnit4ClassRunner.class)
#ContextConfiguration("classpath:spring-test-beans.xml")
public class FormControllerTest {
#Autowired
private MyController controller;
#Test
public void testFirstAction() {
ModelMap model = new ModelMap();
assertEquals("result", controller.firstAction("data", model));
assertEquals("test", model.get("data"));
}
}
So this way I test if the view/model is correct. If you want to see if the web page itself is correctly and uses the correct action, you might want to look at Selenium integration testing (if it's a webpage, not a REST service).
Spring security
To test Spring security, you probably want to mock the SecurityContextHolder. Here you can find the details of the current user, so you can also create mocks (with a mocking framework like Mockito or EasyMock) and make it look like you're logged in as a specific user.
Some more information about it can be found here (also some answers show you how you can do it with a specific mocking framework).
Same as with my answer about the controller, if you want to test the total picture, you want to use integration testing (with Selenium for example).
REST service
The REST service itself (not the controller) is not something harder to test since it's more an integration test than a unit test.
I think the best way to test this is to create a REST client (can be done with JAX-RS frameworks like RESTEasy or Apache CXF) and to test the results you get with the REST client.
This is usually easier to do when you defined your REST service with JAX-RS (and not with Spring MVC), but it's not impossible. If you don't want to create interfaces and extra domain classes, then you can also use the Apache HttpClient. I also found an example of how to use it here.
Related
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 3 years ago.
Improve this question
I want to make an e-commerce web app, where at the backend I am using Django and Django Rest Framework.
I want to use React, Redux and React-Router with axios library at frontend. I found-out that these are two other framework for React i.e. Nextjs and Gatsby.
Now, Which one will be better for me to make an e-commerce web app between Nextjs and Gatsby?
And, Is it necessary to use Redux, React-Router with Nextjs and Gatsby?
It all depends on, what are the important performance related features you want to have in your app? I assume you have the basic understanding of how these both frameworks work. Still, I'll try to make it as brief as possible.
NextJs uses Server-side rendering(SSR) which is good for your SEO and initial site load. It uses a concept of pages, meaning each page is in itself a route. So you don't need to implement React-router separately. It has it's own routing mechanism which can be found in here.
Gatsby is a static site generator tool. A static site generator generates static HTML on build time. It doesn’t use a server. Gatsby uses GraphQL which is a query language and if you’re familiar with SQL, it works in a very similar way. Using a special syntax, you describe the data you want in your component and then that data is given to you.
The fundamental difference is, NextJs requires a server to be able to run. Gatsby can function without any server at all. Gatsby just generates pure HTML/CSS/JS at build time, whereas NextJs creates HTML/CSS/JS at run time. So each time a new request comes in, it creates a new HTML page from the server.
And yes Redux implementation is consistent across these platforms and other state management. Though the Gatsby needs some plugins to get started with it. NextJs setup is similar to create-react-app's. And it entirely depends whether you want to go with redux or not. It has a specific use-case. Nowadays, you have partial solutions for these use-cases i.e contextAPI, hooks etc. But still you need redux for many others, where these limited solutions won't work.
So, If your back-end is in GraphQL, I would recommend to look into Gatsby, it provides some of the powerful solutions for front-end. That said, I would recommend you to go on with NextJs, if you are using any other back-end architecture. I myself had implemented an e-commerce site in NextJs and I must admit It was a great working experience for me.
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 3 years ago.
Improve this question
I start to test new project, and the developer send API services to me to test it because frontend(UI) implementation is not ready.
I have to write Automation scripts for features after stabilizing them
Is it possible to automate API services functionalities, and how plz?
or I have to wait untill frontend is ready so I can locate elements and automate through UI.
Can you please explain to me difference between
Automate through WEB UI vs through Automate API
It's definitely possible to automate API service testing without a UI, and in many cases it's actually preferred.
Is it possible to automate API services functionalities, and how plz?
or I have to wait untill frontend is ready so I can locate elements and automate through UI.
You can test the API separately from the frontend UI. Remember, all the frontend UI does is make requests to the backend API. So instead of using the UI to make API requests, you can use a tool like Assertible, which allows you to send HTTP requests to the API and make assertions on the response.
When you're testing an API, you'll want to validate things like status code (eg, 200), and the response body to sure you get the expected response.
Basically:
1) Send API requests (eg, GET /users)
2) Receive API response (eg, [{id: user1}, {id: user2}])
3) Assert the response status code equals 200. Or, assert that 2 users are returned from the API.
Can you please explain to me difference between Automate through WEB UI vs through Automate API
The big difference is like i mentioned above: when you automate testing through the web UI, you are simply using the UI to make API requests. To test the API by itself, you just send requests directly to the backend.
There's many different tools and services you can use to accomplish this. If you want to use a hosted service that doesn't require much code, Assertible and Postman are both great. If you want to write code, you can use pretty much language/library that allows you to make HTTP requests. In JavaScript, for example, Chakram and Frisby.js are both popular choices.
Hope this helps!
As a side note - testing an API separately from the UI has a lot of advantages. Namely, keeping tests small and isolated so that tests aren't flaky and can easily be traced back to a root cause.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 7 years ago.
Improve this question
Why is Microservice Architecture better than monolithic architecture? I know the answer will be because the microservice architecture is more scalable and each service is independent of each other etc.
My following question is: should we build using Flask or Django REST Framework?
I have also heard of a framework know as Falcon as per there documentation seems good enough.
Microservices is an architecture, not a web* framework choice
I don't think whether your app turns out to be a monolith or a microservice depends on the web framework that you are using (e.g. Django or Flask)
*Unless we're talking about frameworks specifically built to deal with managing microservices (e.g. to facilitate service discovery) web frameworks like Django or Flask are pretty equivalent (input HTTP request, output HTTP response)
Maybe their perceived popularity in a given use case (e.g. Django monolith or Flask microservice) may suggest they are better suited for a particular deployment style, but you could a microservice with Django just as easily as you can a monolith with Flask.
For instance, if I select Flask as my web framework, and in a single Flask app/process I implement all of the services (auth, admin, reporting, payroll, marketing, billing, messaging, search etc), where everything communicates on the code level, then I'd end up with a monolith.
On the other hand, if for instance I take Django, and divide my services into several small Django deploys, and make it so they only communicate through well defined HTTP contracts, and can be updated/deployed independently, then I'd end up with a microservice.
Bottom line is, a microservice is more than just the web framework you use, so use whichever one you like the most, until you have more specific requirements and e.g. 3rd party libs that are useful to you and are only available for a given framework but not the other.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 6 years ago.
Improve this question
I am trying to evaluate the right tool to test RESTful Web services and eventually automate the same for our project.
Wondering, what are the specifications I need to look for such test, when i compare various tools on internet.
Definitely, one of the requirements would be an Open source tool.
I have looked on few tools, such as SOAPUI,RestClient,TestMaker, RestAssured. Wanted to know the pros and cons of them. Also, any ideas or pointers on how to go about it would be of great help.
if you want to test from browsers,
use
POSTMAN -> Chrome
Rest Client -> Firefox
If you need an online tool or require automated API testing,
use
Runscope
If you're looking for aa HTTP client (GUI) to test requests, I'd mention:
Paw, a native HTTP client on Mac that supports most of the popular authentication schemes, has full encryption and obfuscation of your server credentials and dynamic values a special feature that lets you sent back a field from a previous request (e.g. an auth token) or compute the hash of another part of the request. Also generates cURL or client code. (disclaimer: I'm the founder of Paw)
Postman, a Chrome app and a web wrapper for Mac that lets you send requests to servers. Generates cURL and client code. Cross-platform (web app). Has a cloud service for sharing of collections.
Insomnia, a Chrome app but with a really nice interface (a design I like). It feels like the author cares about UI and design. The feature set isn't as complete as Paw or Postman though.
HDC Client, Chrome app, quite old but Restlet acquired them and it seems like it's more active on the development. As test features like Postman.
Advanced REST Client, a Chrome app, similar to previous ones. Seems still quite popular but isn't very updated.
RESTed, a native Mac app, a very small feature set, just lets you test one request at a time. I mention this because I like the native feel (alike Paw) and I think it's a good alternative for those who just want something simple.
Also, you may consider this command line tool:
HTTPie: For a command line too, I personally love it. It's beautifully made, and easy to learn. Clearly not as handy as a GUI, but really worth a try.
I'd also recommend you to read through this list of tools I've made a few months ago: Tools that will help you develop a RESTful API
If you need complex parametrized soap and rest webservices testing and test automation, you definetly should try soapui. It is open source (https://github.com/SmartBear/soapui), free in base edition tool with great documentation. In addition to webservices tests it provide scripting, load testing tool, ide support, web services mocking, running tests from GUI or console and much more.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 5 years ago.
Improve this question
I am new to SoapUI. I have to learn about soapUI ie: How to write a simple soapUI test and how to execute it and all about the results etc.
I have no idea about soapui as of now. So please tell me what is the purpose of a soapUI, how a sample soapUI scripts look and what are all the pre requisites for executing a soapUI testing.
This is a pretty open-ended question but I'll try and answer it with some basic pointers to get you started.
SoapUI is a good tool if you want to test a service dealing with http calls, like rest or soap.
Create a new project and right click on it on the Navigator view on the left. Depending on weather the service uses a wsdl (soap) or wadl (rest) you can add the location of yours to populate a list of resources defined by the wsdl/wadl that you can then use to start putting together tests. For example if you had a wadl that specifies POST/PUT/GET/DELETE operations, resources will be created for these calls. You can then create test suites/cases that use these operations. First figure out where/how you access the service you want to test, then try and get those resources plugged into a new project and try and make a call of some kind to the service. If you can get the service to 'do something' through soapui, you'll be well on your way to figuring out how to use it to setup full tests.
SoapUI is a functional testing solution which can be used to create and execute automated functional, regression, compliance, and load tests for webservices created with .NET, J2EE, Perl, PHP, etc.
It does have some less resources online but the Getting Started Page on SoapUI helps a lot.