mutx 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,13 @@
1
+ How to configure Mutx?
2
+ ==============
3
+
4
+ Mutx retrieve information from profiles file called cucumber.yml allocated on project root folder.
5
+ You have to have this file into your project to work with Mutx.
6
+
7
+ Mutx will show only those tasks marked as runnable as test tasks. To do this you only have to add a flag to each cucumber profile you want to expose as follows:
8
+ Supose you have a profile called regression on cucumber.yml file
9
+
10
+ #cucumber.yml
11
+ regression: -t @regression runnable=true
12
+
13
+ The flag `runnable=true` indicates to Mutx to expose the profile to be executed as a test task.
@@ -0,0 +1,117 @@
1
+ How to pass parameters to a test task execution?
2
+ ==============
3
+
4
+ As Mutx retrieve information from task's file called cucumber.yml allocated on projet root folder.
5
+
6
+ You can send parameters to a test task execution and your tests can take that data to run in a certain way you need or want.
7
+
8
+ To ask for parameters into a test task you have to set them up in cucumber.yml file.
9
+
10
+ There are basically two types of fields you can show in test tasks (text field and select list).
11
+
12
+ This fields can be setted as required values and or with a default value.
13
+
14
+ All custom parameters must be defined on each test task you need by using the custom parameter:
15
+
16
+ #cucumber.yml
17
+
18
+ regression: -t @regression runnable=true custom=[]
19
+
20
+ Text field
21
+ ---------------------
22
+
23
+ To show a text field as a custom parameter you just have to define the name of the param
24
+
25
+ regression: -t @regression runnable=true custom=[my_param]
26
+
27
+ <form>
28
+ <label class="col-sm-2 control-label" for="formGroupInputSmall">my_param</label><input type="text" name="my_param" value="" placeholder="" style="height: 34px; padding: 6px 12px; font-size: 14px; line-height: 1.42857143; color: #555; background-color: #fff; background-image: none; border: 1px solid #ccc; border-radius: 4px;">
29
+ </form>
30
+
31
+ ---------------------------------------
32
+
33
+ If you want to define a default value just define the value like:
34
+
35
+ regression: -t @regression runnable=true custom=[my_param:a_value]
36
+
37
+ <form>
38
+ <label class="col-sm-2 control-label" for="formGroupInputSmall">my_param</label><input type="text" name="my_param" value="a_value" placeholder="" style="height: 34px; padding: 6px 12px; font-size: 14px; line-height: 1.42857143; color: #555; background-color: #fff; background-image: none; border: 1px solid #ccc; border-radius: 4px;">
39
+ </form>
40
+
41
+ ---------------------------------------
42
+
43
+ You can define the parameter as a required value by using \*
44
+
45
+ regression: -t @regression runnable=true custom=[my_param:*]
46
+
47
+ <form>
48
+ <label class="col-sm-2 control-label" for="formGroupInputSmall">my_param</label><input type="text" name="my_param" value="" placeholder="" style="height: 34px; padding: 6px 12px; font-size: 14px; line-height: 1.42857143; color: #555; background-color: #fff; background-image: none; border: 1px solid #ccc; border-radius: 4px;">*
49
+ </form>
50
+
51
+ ---------------------------------------
52
+
53
+ You can also define the parameter as required and with a default value by using:
54
+
55
+ regression: -t @regression runnable=true custom=[my_param:a_value:*]
56
+
57
+ <form>
58
+ <label class="col-sm-2 control-label" for="formGroupInputSmall">my_param</label><input type="text" name="my_param" value="a_value" placeholder="" style="height: 34px; padding: 6px 12px; font-size: 14px; line-height: 1.42857143; color: #555; background-color: #fff; background-image: none; border: 1px solid #ccc; border-radius: 4px;">*
59
+ </form>
60
+
61
+ Select List
62
+ ---------------------
63
+
64
+ To provide a certain set of possible values that a test task can use, you can provide a custom parameter as a select list
65
+ It is like a text field but just use () to provide the possible values separated by | (pipe char).
66
+
67
+ regression: -t @regression runnable=true custom=[environment:(RC|IC|BETA|PROD)]
68
+
69
+ <form>
70
+ <label class="col-sm-2 control-label" for="formGroupInputSmall">environment</label><select id="environment" name="environment" style="height: 34px; padding: 6px 12px; font-size: 14px; line-height: 1.42857143; color: #555; background-color: #fff; background-image: none; border: 1px solid #ccc; border-radius: 4px;"> <option value="RC">RC</option> <option value="IC">IC</option> <option value="BETA">BETA</option> <option value="PROD">PROD</option> </select>
71
+ </form>
72
+
73
+ ---------------------------------------
74
+
75
+ The first value on the list will be used as a default value if user does not select any other value from the list
76
+ With this type of parameter you will ensure that the execution will expect a correct value to run. This is used to make a parameter required with a list of possible values
77
+ ---------------------------------------
78
+ But if you do not want to make a select list mandatory, you can use as a first value none to indicate the there is a null value. It is aimed to mimic that user does not select a value
79
+
80
+ regression: -t @regression runnable=true custom=[environment:(none|RC|IC|BETA|PROD)]
81
+
82
+ # none will be interpreted as an empty option, by using it at the first place on the list, you are setting this parameter as optional.
83
+
84
+ <form>
85
+ <label class="col-sm-2 control-label" for="formGroupInputSmall">environment</label><select id="environment" name="environment" style="height: 34px; padding: 6px 12px; font-size: 14px; line-height: 1.42857143; color: #555; background-color: #fff; background-image: none; border: 1px solid #ccc; border-radius: 4px;"> <option value=""></option> <option value="RC">RC</option> <option value="IC">IC</option> <option value="BETA">BETA</option> <option value="PROD">PROD</option></select>
86
+ </form>
87
+
88
+ ---------------------------------------
89
+
90
+
91
+
92
+
93
+
94
+ How to get custom parameters
95
+ ==============
96
+
97
+ Once Mutx has got the custom parameters from cucumber.yml, you can get them whenever and wherever you want inside your code.
98
+ You'll can do it by creating an instance of Mutx::Custom::Params
99
+
100
+ For example
101
+ If you have defined a custom parameter like that: custom=[environment:(RC|PROD)]
102
+
103
+ So you will be able to get this parameter by the following way:
104
+
105
+ $CUSTOM = Mutx::Custom::Params.get
106
+
107
+ $CUSTOM.environment
108
+ # => will return the selected choice of environment param by the user.
109
+
110
+ If you want to get all custom params in a hash you can use:
111
+
112
+ $CUSTOM.all_params
113
+ # will return a hash with all params and values {}
114
+
115
+ $CUSTOM.raw
116
+ # Same as .all_params
117
+
@@ -0,0 +1,122 @@
1
+ How to make documentation for Mutx?
2
+ ==============
3
+
4
+ Mutx documentation is loaded to your local mongodb during the command `prepare` from all .md files located inside /mutx/documentation/
5
+ and /mutx/ folders.
6
+ Then it's made available in [/mutx/help/main](/mutx/help/main "Help") where you can see all documents and perform searches through them.
7
+
8
+ Where do i put the documents?
9
+ ---------------------
10
+
11
+ You can push them to the mutx git project inside /mutx/documentation/ folder, /mutx/ folder it's also functional but it's discouraged.
12
+
13
+ What type of file do i use?
14
+ ---------------------
15
+
16
+ You can only use Markdown (.md) files.
17
+
18
+ How do i name it?
19
+ ---------------------
20
+
21
+ The name should describe the content of the document, beware that this name its going to be the title of the document in the [/mutx/help/main](/mutx/help/main "Help") page so take that into consideration.
22
+ Also all the name should be all in undercase, and words should be separated by "_" wich are replaced by spaces afterwards.
23
+
24
+ An example of this:
25
+
26
+ Name of the file:
27
+
28
+ this_is_an_example.md
29
+
30
+ The the title will be like this:
31
+
32
+ This is an example
33
+
34
+ How do i format de content of the file?
35
+ ---------------------
36
+
37
+ All files in mutx project shuld be formated like this
38
+
39
+ Main title
40
+ ==============
41
+
42
+ Body of the file
43
+
44
+ - Main title: it describes the content of the file, it is also the description dispayed here [/mutx/help/main](/mutx/help/main "Help")
45
+
46
+ - Body of the file: here you can place all the content you want, see ´How do i format de body?´ for more info.
47
+
48
+
49
+ How do i format de body?
50
+ ---------------------
51
+
52
+ You can use most of Markdown rules.
53
+ Also you can use some basic HTML, but it's strongly discouraged.
54
+
55
+ Here are some examples:
56
+
57
+ Main title
58
+ ==============
59
+
60
+ Secondary titles
61
+ ---------------------
62
+
63
+ Normal text.
64
+
65
+ > This is a quote.
66
+
67
+ *This is italicized*
68
+
69
+ **This is bold**
70
+
71
+ ***This is italicized and bold***
72
+
73
+ `this is higlighted`
74
+
75
+ - this
76
+ - is a
77
+ - list
78
+
79
+ This is a link: [Despegar](http://www.despegar.com/)
80
+
81
+ You can make relative links too: [/mutx/help/main](/mutx/help/main "Help")
82
+
83
+ This is a block.
84
+
85
+ This is a ruler:
86
+
87
+ ---------------------------------------
88
+
89
+
90
+ They are displayed as follows:
91
+
92
+ Main title
93
+ ==============
94
+
95
+ Secondary titles
96
+ ---------------------
97
+
98
+ Normal text.
99
+
100
+ > This is a quote.
101
+
102
+ *This is italicized*
103
+
104
+ **This is bold**
105
+
106
+ ***This is italicized and bold***
107
+
108
+ `this is higlighted`
109
+
110
+ - this
111
+ - is a
112
+ - list
113
+
114
+ This is a link: [Despegar](http://www.despegar.com/)
115
+
116
+ You can make relative links too: [/mutx/help/main](/mutx/help/main "Help")
117
+
118
+ This is a block
119
+
120
+ This is a ruler:
121
+
122
+ ----------------------------------------
@@ -0,0 +1,12 @@
1
+ Share a link to execute a test task
2
+ ==============
3
+
4
+ Pressing this button:
5
+
6
+ <form>
7
+ <button type="button" class="btn btn-default" aria-label="Left Align" ><span class="glyphicon glyphicon-star" aria-hidden="true">Link</span></button>
8
+ </form>
9
+
10
+ you will see a message with the url that starts the test task execution with the configured custom params and execution name
11
+ This could be helpful when a story is in development process and your test is ready to be executed, so you can create a test task related to the history,
12
+ set custom params, execution name and then share the link to de developer which is responsible about the history implementation
@@ -0,0 +1,119 @@
1
+ Results and details about them.
2
+ ==============
3
+
4
+ Each Test Suite execution creates a result. You can see them in Results section.
5
+ You will see each Test Suite box with its results. If a Test Suite has more than three results, you'll see a green button that says `All results` for this test task to see all results for that test task
6
+ A result line looks like:
7
+
8
+ <div class="panel panel-primary">
9
+ <div class="panel-heading" data-toggle="collapse" data-target="#at_world">
10
+ <h3 class="panel-title">
11
+ Regression Tests
12
+ <div class="pull-right">28 Results</div>
13
+ </h3>
14
+ <div></div>
15
+ </div>
16
+ <div class="panel-body collapse in" id="at_world">
17
+ <div title="Command: -t @multi "></div>
18
+ <div title="Command: -t @multi "></div>
19
+ <div title="Command: -t @multi "></div>
20
+ <table class="table">
21
+ <thead>
22
+ <tr>
23
+ <th style="font-weight: bold;">When</th>
24
+ <th style="font-weight: bold;">Label</th>
25
+ <th style="font-weight: bold;">Duration (sec)</th>
26
+ <th style="font-weight: bold; text-align: center;">Unviewed</th>
27
+ <th style="font-weight: bold;">Console</th>
28
+ <th style="font-weight: bold;">Status</th>
29
+ </tr>
30
+ </thead>
31
+ <tbody>
32
+ <tr class="small">
33
+ <th>01/04/2015 12:16:10</th>
34
+ <th>01APR15-1216</th>
35
+ <th> 5 m 2 s</th>
36
+ <th style="text-align: center;">
37
+ No
38
+ </th>
39
+ <th>
40
+ <a class="label label-default">
41
+ Console Log
42
+ </a>
43
+ </th>
44
+ <th>
45
+ <a href="#" class="label label-danger">Stopped (inactivity timeout reached)</a>
46
+ </th>
47
+ </tr>
48
+ <tr class="small">
49
+ <th>19/03/2015 16:00:30</th>
50
+ <th>19MAR15-1600</th>
51
+ <th>11 s</th>
52
+ <th style="text-align: center;">
53
+ No
54
+ </th>
55
+ <th>
56
+ <a class="label label-default">
57
+ Console Log
58
+ </a>
59
+ </th>
60
+ <th>
61
+ <a href="#" class="label label-success">1 scenario (1 passed) - 1 step (1 passed)</a>
62
+ </th>
63
+ </tr>
64
+ <tr class="small">
65
+ <th>19/03/2015 15:17:16</th>
66
+ <th>19MAR15-1517</th>
67
+ <th> 4 m 21 s</th>
68
+ <th style="text-align: center;">
69
+ No
70
+ </th>
71
+ <th>
72
+ <a class="label label-default">
73
+ Console Log
74
+ </a>
75
+ </th>
76
+ <th>
77
+ <a href="#" class="label label-success">1 scenario (1 passed) - 1 step (1 passed)</a>
78
+ </th>
79
+ </tr>
80
+ </tbody>
81
+ </table>
82
+ <div class="text-center">
83
+ <a class="btn btn-info">
84
+ Go to task
85
+ </a>
86
+ <a href="/mutx/results/task/multi" class="btn btn-default">
87
+ &nbsp;&nbsp;All results for this task&nbsp;
88
+ <span class="label label-info label-as-badge">
89
+ 3
90
+ </span>
91
+ </a>
92
+ </div>
93
+ </div>
94
+ </div>
95
+
96
+ ---------------------------------------
97
+
98
+
99
+ You can click on this button to see the console output of the execution
100
+
101
+ <a class="btn btn-info">Console Log</a>
102
+
103
+ ---------------------------------------
104
+
105
+ When the execution is still running this label will be shown
106
+
107
+ <span class="label label-success">Running</span>
108
+
109
+ ---------------------------------------
110
+
111
+ You can click on summary description like this to see the cucumber report.
112
+
113
+ <span class="label label-success">4 scenarios (4 passed) - 20 steps (20 passed)</span>
114
+
115
+ ---------------------------------------
116
+
117
+ When an execution is stopped you'll see this in All Results section you'll see all execution results for all test tasks. You can find a specific result by typing a keyword or selecting a status and pressing Search
118
+
119
+ <span class="label label-danger">Suite execution stopped!</span>
@@ -0,0 +1,19 @@
1
+ What is Mutx?
2
+ ==============
3
+ *Basically it's about runnnig tests easily.*
4
+
5
+ With Mutx, you don't have to install or configure nothing.
6
+ Just enter on your favourite web browser the url where Mutx is running for your test automation project,
7
+ go to Suites and start the execution you need to run.
8
+
9
+ How to run tests?
10
+ ==============
11
+
12
+ You can run tests in Test Suites section. You'll find test tasks listed. Each test task involves many test (or not).
13
+ If you want to know more about a test task you can mouse over the information icon which could have info about it
14
+ Each test task saves its execution results in a database so you do not have to care about report because Mutx do that for you and store all reports as a history.
15
+ You also can provide some parameters to the execution. This values are called Custom Parameters and you can set them up as your execution needs.
16
+
17
+ Only test?
18
+ ==============
19
+ Well, why not use this to run any code?
@@ -0,0 +1,60 @@
1
+ How to use Test Suites in Mutx?
2
+ ==============
3
+
4
+ You can find test tasks on Test Suites section.
5
+ Mutx will retrieve all profiles masked as runnable defined on cucumber.yml
6
+ Each Test Suite can be executed by pressing Run button. The execution result could be identified after the execution by adding a label before pressing Run button
7
+ For example, an identifier could be a release product version like r2.3.44. So you will be able to identify quickly the execution result later
8
+ You can provide some parameters to the execution by using [Custom Parameters](/mutx/help/custom_parameters "Custom Parameters")
9
+
10
+ A Test Suite looks like:
11
+ ---------------------
12
+
13
+ <div class="panel panel-primary">
14
+ <div class="panel-heading" data-toggle="collapse" data-target="#multi">
15
+ <h4 class="panel-title">multi</h4>
16
+ </div>
17
+ <div class="panel-body collapse in" id="multi">
18
+ <ul class="list-group">
19
+ <li class="list-group-item">Command: -t @multi</li>
20
+ <li class="list-group-item">Last result:&nbsp;<a href="#" class="label label-danger" >Stopped (inactivity timeout reached)</a></li>
21
+ <li class="list-group-item">Started on:&nbsp;24/05/47218 02:27:33</li>
22
+ <li class="list-group-item">
23
+ <form name="run" id="multi" method="get" action="#">
24
+ <h4 title="This parameters will be passed to the test task execution">&nbsp;&nbsp;&nbsp;Custom Parameters</h4>
25
+ <div class="container" style="width: inherit">
26
+ <li class="list-group-item" style="position:relative; with=100%">
27
+ <div class="form-group-sm">
28
+ <label class="col-sm-2 control-label" for="formGroupInputSmall">environment</label>
29
+ <select id="environment" name="environment" class="customParam" style="height: 34px; padding: 6px 12px; font-size: 14px; line-height: 1.42857143; color: #555; background-color: #fff; background-image: none; border: 1px solid #ccc; border-radius: 4px; font-weight:normal;">
30
+ <option value="RC">RC</option>
31
+ <option value="BETA">BETA</option>
32
+ <option value="PROD">PROD</option>
33
+ </select>
34
+ <input type="text" id="otro0" name="otro" value="Enter otro" onfocus="if (this.value==&quot;Enter otro&quot;) this.value=&quot;&quot;;" placeholder="" style="display: none; height: 34px; padding: 6px 12px; font-size: 14px; line-height: 1.42857143; color: #555; background-color: #fff; background-image: none; border: 1px solid #ccc; border-radius: 4px;"></div>
35
+ <div class="form-group-sm">
36
+ <label class="col-sm-2 control-label" for="formGroupInputSmall">my param A</label>
37
+ <textarea class="customParam" type="text" name="blabla" placeholder="" style="height: 34px; padding: 6px 12px; font-size: 14px; line-height: 1.42857143; color: #555; background-color: #fff; background-image: none; border: 1px solid #ccc; border-radius: 4px; max-width: 70%; max-height: 500px; min-height: 34px; min-width: 212px; font-weight:normal;"></textarea>
38
+ </div>
39
+ <div class="form-group-sm">
40
+ <label class="col-sm-2 control-label" for="formGroupInputSmall">my param B</label>
41
+ <textarea class="customParam" type="text" name="etc" placeholder="" style="height: 34px; padding: 6px 12px; font-size: 14px; line-height: 1.42857143; color: #555; background-color: #fff; background-image: none; border: 1px solid #ccc; border-radius: 4px; max-width: 70%; max-height: 500px; min-height: 34px; min-width: 212px; font-weight:normal;"></textarea>
42
+ </div>
43
+ <div class="form-group-sm">
44
+ <label class="col-sm-2 control-label" for="formGroupInputSmall">my Param C</label>
45
+ <textarea class="customParam" type="text" name="country" placeholder="" style="height: 34px; padding: 6px 12px; font-size: 14px; line-height: 1.42857143; color: #555; background-color: #fff; background-image: none; border: 1px solid #ccc; border-radius: 4px; max-width: 70%; max-height: 500px; min-height: 34px; min-width: 212px; font-weight:normal;"></textarea>
46
+ </div>
47
+ </li>
48
+ </div>
49
+ <br><br>
50
+ <input type="submit" class="btn btn-success" value="Execute Suite">&nbsp;
51
+ <input type="text" name="execution_name" class="customParam" title="This value could be used to identify the result execution from other execution of this task. E.g: You could use the release your are going to test" placeholder="Identify your execution" value="01APR15-1356" style="height: 34px; padding: 6px 12px; font-size: 14px; line-height: 1.42857143; color: #555; background-color: #fff; background-image: none; border: 1px solid #ccc; border-radius: 4px; font-weight:normal;">
52
+ <button type="button" class="btn btn-default" aria-label="Left Align" data-toggle="modal" data-target="#myModal" onclick="javascript:starter_link(&quot;multi&quot;);">
53
+ <span class="glyphicon glyphicon-star" aria-hidden="true">Link</span>
54
+ </button>
55
+ </form>
56
+ </li>
57
+ </ul>
58
+ <a href="#" class="btn btn-default pull-center">All results(28)</a>
59
+ </div>
60
+ </div>