Common tasks that you can perform with the Groovy Script test step
https://support.smartbear.com/readyapi/docs/soapui/steps/groovy.html
Get test case object
To obtain the object which refers to the containing test case, use the following code snippet:
By using the testCase object, you can access and manipulate test items of the project.
Fail the test run
There are two ways to fail the test run from your scripts:
To fail only the Groovy Script test step, throw an exception in your script:
throw new Exception("Result not as expected!")If the Abort test if an error occurs option is enabled in TestCase Options, the test will stop. Otherwise, it will continue.
To fail the entire test run, use the
testRunner.failmethod. This marks the test failed and stops the test run regardless of the Abort test if an error occurs option.testRunner.fail("Result not as expected!")
Stop test execution
The testRunner scripting object has two methods to stop the current test run:
cancel(String reason)– Stops the test run and marks it as Canceled. The string argument specifies the reason.fail(String reason)– Stops the test run and marks it as Fail. The string argument specifies the reason.
Run test step by name
You can run any test step in the current test case. To do this, use the runTestStepByName method of the testRunner object. This method runs the specified test step and returns the result. For example, the following code snippet runs ten random requests before executing the remaining script:
// Run ten random requests
for( i in 1..10 )
{
if( Math.random() > 0.5 )
testRunner.runTestStepByName( "Request 1")
else
testRunner.runTestStepByName( "Request 2")
}
// Do something else
Create context related property
The following code snippet creates a foo property that will be available in another groovy script:
The typical scenario is to save the needed counters and collections to the context and use them to control the test flow as required.
Branch test case
By using the gotoStepByName method of the testRunner object, you can command ReadyAPI to jump the test execution to the specified test step after the script has finished. For example the following script randomly selects the next test step:
if( Math.random() > 0.5 )
testRunner.gotoStepByName( "Request 1")
else
testRunner.gotoStepByName( "Request 2")
// do something else before executing one of the requests
Create an assertion
To create an assertion:
Obtain a test step by using the
getTestStepByNamemethod of thetestCaseobject.Use the
addAssertionmethod to create an assertion.Specify the assertion name as a string.
ReadyAPI will create a new assertion with the specified name and default settings.
Note: If you already have an assertion with the same name, you will be prompted to specify the unique assertion name. The test will not continue until you close the dialog.
For example, the following code snippet shows how to create a Valid HTTP Status Codes assertion for the Test Request test step:
// Get the test step object
def ts = testRunner.testCase.getTestStepByName("Test Request")
// Add the assertion
def vas = ts.addAssertion("Valid HTTP Status Codes")
Modify assertion
You can modify the created assertion by using assertion-specific methods.
For example, to change the code checked by Valid HTTP Status Codes and Invalid HTTP Status Codes by using the setCodes method of the Assertion object.
You can get this object when creating it in the following way:
// Get the test step object
def ts = testRunner.testCase.getTestStepByName("Test Request")
// Add the assertion
def vas = ts.addAssertion("Valid HTTP Status Codes")
// Set assertion codes
vas.setCodes("200,202")
If you have already created an assertion, you can access it in the following way:
// Get the test step object
def ts = testRunner.testCase.getTestStepByName("Test Request")
// Search all assertions
for ( e in assertionsList)
{
// If the assertion name matches
if (e.getName() == "Valid HTTP Status Codes")
{
// Set assertion codes
e.setCodes("503, 504")
}
}
Remove assertions
To remove an assertion, use the removeAssertion method.
You need to specify the assertion object to remove.
Here is the sample code that will remove the assertion created in the example above.
// Get the test step object
def ts = testRunner.testCase.getTestStepByName("Test Request")
// Search all assertions
for ( e in assertionsList)
{
// If the assertion name matches
if (e.getName() == "Valid HTTP Status Codes")
{
// Delete the assertion
ts.removeAssertion(e)
}
}
Get property value
To get a property value:
Obtain the containing object.
Use the
getPropertyValue()method to get a property object.
For example, the following code snippet gets a test suite property:
// Get username property from the test suite object
def username = testRunner.testCase.testSuite.getPropertyValue( "Username" )
Set property value
To write a value to a property, use the setPropertyValue() method. For example, the following code snippet, specifies the Username parameter of the HTTP Request test step:
// Write the username to the HTTP Request
testRunner.testCase.testSteps["HTTP Request"].setPropertyValue( "Username", username )
Common tasks that you can perform with the Groovy Script test step的更多相关文章
- [整理归档]30 common tasks you perform using the GUI that you can do faster in Windows PowerShell
主要内容来自于 http://channel9.msdn.com/Events/TechEd/Australia/2014/DCI316 可以下载PPT以及视频,个人只是整理一下平时常用的 NetWo ...
- Update UI from an asynchronous thread
One of the most common tasks you need to perform in a Windows Phone application is updating the UI f ...
- ansible common modules
##Some common modules[cloud modules] [clustering modules] [command modules]command - executes a comm ...
- Selenium click不生效 报错selenium.common.exceptions.InvalidArgumentException
记录在使用selenium过程中踩的坑------ 在使用selenium时,用click点击网站弹出的文件上传框的"上传文件"按钮不生效,报错selenium.common.ex ...
- [转载]Java 8 日期&时间 API
Java 8 日期和时间 声明 本文转自http://www.journaldev.com/2800/java-8-date-localdate-localdatetime-instant,以mark ...
- 数据上下文【 DnContext】【EF基础系列7】
DBContext: As you have seen in the previous Create Entity Data Model section, EDM generates the Scho ...
- [asp.net core] Tag Helpers 简介(转)
原文地址 https://docs.microsoft.com/en-us/aspnet/core/mvc/views/tag-helpers/intro What are Tag Helpers? ...
- sandy bridge
SANDY BRIDGE SPANS GENERATIONS Intel Focuses on Graphics, Multimedia in New Processor Design By Li ...
- AngularJS是什么
先标明来源: https://code.angularjs.org/1.3.15/docs/guide/introduction 也就是官网针对1.3.15版的说明 What Is Angular? ...
随机推荐
- 面向对象程序设计(Java)本学期课程改革说明
1.教学方式采用反转课堂教学法,学生课前完成知识的学习,课堂是师生之间.学生之间互动的场所,包括答疑解惑.知识的运用技巧探讨等,教师的课堂责任是理解学生的问题和引导学生去运用知识. 2.为更好地执行反 ...
- MySql数据类型范围
[MySql数据类型范围] 参考:http://blog.sina.com.cn/s/blog_4f925fc30102edg8.html
- Python基础之初始编码
前言 程序中的编码问题你不搞明白,那么你的程序生涯中它会像幽灵一样伴随着你的职业生涯. 首先要搞清楚一个概念:计算机中认识什么?它认识的是010101这种二进制,却不认识中文不认识英文 那么,这个时候 ...
- 153. Find Minimum in Rotated Sorted Array (Array; Divide-and-Conquer)
Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand. (i.e. ...
- C++ 智能指针shared_ptr的实现
#include <memory> #include <iostream> using namespace std; template<typename T> cl ...
- python函数传入参数(默认参数、可变长度参数、关键字参数)
1.python中默认缺省参数----定义默认参数要牢记一点:默认参数必须指向不变对象! 1 def foo(a,b=1): 2 print a,b 3 4 foo(2) #2 1 5 foo(3,1 ...
- linux命令学习之:chown
chown将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID:组可以是组名或者组ID:文件是以空格分开的要改变权限的文件列表,支持通配符.系统管理员经常使用chown命令,在将文件拷贝 ...
- mysql事务四大特性
本篇讲诉数据库中事务的四大特性(ACID)和简单操作 ⑴ 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务 ...
- Xcode的路径小知识纪录
Xcode的路径小知识纪录 模拟器应用程序的安装路径 /Users/aplle/资源库/Application Support/iPhone Simulator/7.1/Applications Xc ...
- undefined reference to...
wj@wj-Inspiron-:~/Downloads/LBD_Descriptor/build$ cmake .. -- Configuring done -- Generating done -- ...