Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Karate UI improvements #306

Closed
RavinderSinghMaan opened this issue Feb 4, 2018 · 4 comments
Closed

Karate UI improvements #306

RavinderSinghMaan opened this issue Feb 4, 2018 · 4 comments

Comments

@RavinderSinghMaan
Copy link
Contributor

RavinderSinghMaan commented Feb 4, 2018

Hi

First of all congratulations on this fantastic project and it is really cool. I have been exploring it recently to use it for testing our API.
I am raising this issue to suggest improvements to Karate UI. I would love to contribute to the project but want to discuss few points with you guys. We would like to use Karate UI as the main tool for demoing our API at the end of the sprint. So it will be really good if Karate UI is developed in such a way so that it is the Tool for API demos as well. Below is the list of points which comes to my mind after playing with UI, will be good to know what other people think about it.

  1. Instead of opening one allow the ability to open a directory and then add directory tree on the left. I have done the POC and below is roughly how it can look after the change. Any thoughts?
    image
  2. Added Feature description at the top of the scenarios pane.
  3. Allow the panes to be resizeable
  4. Add a button for each scenario so that I can run all the steps in one scenario
  5. Add a fast-forward button for each step in the scenario and if that button is clicked then all the steps up to that step are executed.
  6. For "method" step add a collapsible panel to show request url , request headers, request params, response headers and response body(with the option to pretty-print or raw). This means when I demo the API I can run all the steps and then I can show how request and response looks like. Something similar to what we get from Chrome developer tools. Difference between this and variables on right side is that even if other steps have been run I can go back to a scenario and show the information for the step.
    image
  7. Ability to generate curl command for each step with "method". This can be another panel just like above. This will be very useful in case I need to send curl examples to API users. Tools like POSTMAN allow this.
  8. Change the env box to selection list which gets populated from karate-config.js or some other config file.
    Would love to hear what other people think about these points.

Thanks
Ravinder

@ptrthomas
Copy link
Member

this is fantastic. the UI was something I had created quickly but then started focusing on other features (e.g. mocks as a priority). the world needs a better alternative to postman. you can also look at https://insomnia.rest for ideas, but karate's core competency is being able to integrate into a Java project structure if needed.

I agree with all your points, I would not put too much time into 8 since karate-config.js is deliberately un-structured and gives full freedom to the end-user - but if you have a particular idea about an alternate config file I'd love to hear it.

in case you did not see this already - you should be aware that the karate-netty-<version>-all.jar is a new development where all of Karate including the UI and mock-server capabilities are available in one single binary that you can download and run, in fact double-clicking brings up the UI: https://github.com/intuit/karate/tree/master/karate-netty#ui

So all the work that you are doing is super-relevant !

@RavinderSinghMaan
Copy link
Contributor Author

@ptrthomas cool as the time permits I will try to get the implementation done for all the points. I was looking for contribution section but couldn't find one. Do we have any guidelines for contribution? Shall I just raise the pull requests?

@ptrthomas
Copy link
Member

@RavinderSinghMaan yes, please raise the pull requests. just make sure you target the develop branch.

RavinderSinghMaan pushed a commit to RavinderSinghMaan/karate that referenced this issue Feb 10, 2018
…I. Added menu item "Load Directory" in File menu. When user clicks on this a directory panel is added on the left and user can open any feature file. Arrow keys , enter key and mouse can be used to navigate or open feature files.
RavinderSinghMaan pushed a commit to RavinderSinghMaan/karate that referenced this issue Feb 10, 2018
RavinderSinghMaan pushed a commit to RavinderSinghMaan/karate that referenced this issue Feb 10, 2018
ptrthomas added a commit that referenced this issue Feb 11, 2018
#306 | Ravinder | Adding a button to run all steps upto the step.
RavinderSinghMaan pushed a commit to RavinderSinghMaan/karate that referenced this issue Feb 11, 2018
…method". Request response details are added to textarea in the Accordian Panel. This will be useful as it essetially keeps the state of each HTTP call.
RavinderSinghMaan pushed a commit to RavinderSinghMaan/karate that referenced this issue Feb 11, 2018
RavinderSinghMaan pushed a commit to RavinderSinghMaan/karate that referenced this issue Feb 11, 2018
…nges in "getAsPrettyString()". For "\/\/" problem will raise a separate issue and will deal with it separatly.
RavinderSinghMaan pushed a commit to RavinderSinghMaan/karate that referenced this issue Feb 11, 2018
…nges in "getAsPrettyString()". For "\/\/" problem will raise a separate issue and will deal with it separatly.
ptrthomas added a commit that referenced this issue Feb 12, 2018
#306 | Ravinder | Adding Accordian Panel for step of type "method".
ptrthomas added a commit that referenced this issue Feb 13, 2018
RavinderSinghMaan added a commit to RavinderSinghMaan/karate that referenced this issue Feb 25, 2018
ptrthomas added a commit that referenced this issue Feb 26, 2018
#306 | Ravinder | Changes to fix NullPointerException and extracting duplicate code into a method.
RavinderSinghMaan added a commit to RavinderSinghMaan/karate that referenced this issue Feb 26, 2018
…dded component DragResizer which can be used for other panes as well. All the panes in Main BorderPane are now of type BorderPane this means padding can be adjusted for all the panes from one place.
RavinderSinghMaan added a commit to RavinderSinghMaan/karate that referenced this issue Feb 26, 2018
…dded component DragResizer which can be used for other panes as well. All the panes in Main BorderPane are now of type BorderPane this means padding can be adjusted for all the panes from one place.
@ptrthomas
Copy link
Member

closing due to inactivity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants