9

Soapui project has service with 100+ operations. It's very difficult to navigate when operations are not sorted. Is there a way to order operations in soapui ?

I'm using soapui free version, but I'm interested in solutions for SoapUI NG Pro as well.

Ildar Galikov
  • 431
  • 5
  • 17

5 Answers5

9

Apparently it's not possible. Tested with all versions, even with SoapUI NG Pro.

The only way to find your operation fast is to start typing your operation name. This way it navigates to the operation that starts with the same string as you typed.

Ildar Galikov
  • 431
  • 5
  • 17
6

SoapUI free version: Preferences -> UI Settings -> Checked: Order Services alphabetically in tree. Then delete and recreate the list of services from WSDL. The new list is sorted alphabetically.

Goran7T
  • 76
  • 1
  • 4
  • 5
  • 3
    The problem with this solution is I have many custom requests I made for the different operations. Deleting the endpoint and re-recreating it will blow all those away. – goku_da_master Apr 26 '19 at 19:46
2

The only way that I've found to order operations is to edit the raw soap-ui project xml. Maybe it's not viable to you, because of the size of your project, but anyway it's an alternative.

Venny
  • 46
  • 3
0

Seems that words like Service, Operation and Request are hard to set apart.

According to this page, the request for this functionality has been outstanding for sometime now, including a right mouse button menu option to sort the operations on the fly, so without the need to delete the service from your project and then importing it again.

Thunder
  • 39
  • 8
0

Venny's answer suggests to edit the raw soap-ui project xml, which can be automated, e.g., using Python and its ElementTree module:

import xml.etree.ElementTree as ET

tree = ET.parse('input.xml')
interface = tree.getroot().find('{http://eviware.com/soapui/config}interface')
for operation in sorted(interface.findall('{http://eviware.com/soapui/config}operation'), key=lambda op: op.attrib['name']):
    interface.remove(operation)
    interface.append(operation)
tree.write('output.xml')
Manfred
  • 2,269
  • 1
  • 5
  • 14