Subscribe to Methods & Tools
if you are not afraid to read more than one page to be a smarter software developer, software tester or project manager!
Subscribe to Methods & Tools
if you are not afraid to read more than one page to be a smarter software developer, software tester or project manager!
TTCN-3 as powerful test automation technology can be effectively used in RESTFul API-s testing.
Test automation workflow of RESTFul APIs using TTCN-3 includes following steps:
1.Define TTCN-3 data types for RESTFul API endpoints:
- Automatic conversion of JSON Schemas (swagger.json) or
- Semiautomatic conversion of JSON bodies to TTCN-3 types
2.Develop test cases for RESTFul API endpoints
- Request/Response pairs for endpoints
- Test logic depending on endpoint
3.Execute test case(s)
Let's be honest: We rarely test the product functionality under load. But how can we be sureÂ our end product works when our customers are using it? As we've described in our previous blog post "Combining Automated Functional and Load Testing", it often makes sense to combine functional and non-functional tests.Â A functional test, which works fine in idle conditions, might fail when the back-end server is under load. Just like simply stressing a back-end system may not reveal functional issues, which canÂ only be found by an automated functional test. If we want to find those errors that only occur under load, we have to combine automated functional tests and automated load tests.
We're happy to announce that you can now combine Ranorex and NeoLoad tests!
In this blog, we want to show you how you can set up the Ranorex-NeoLoad integration andÂ what you can do with it. But first, let's quickly cover the basics:What is NeoLoad?
NeoLoad is an automated load and performance testing tool from Neotys.
NeoLoad offers a full-fledged REST API to either remote control the execution of a NeoLoad test or transmit timingÂ values to NeoLoad. To enable integration with Ranorex, the REST API calls are wrapped with Ranorex functions and packaged into a NuGet package for easy deployment.What do I need to enable the Ranorex-NeoLoadÂ integration?
Now that you're all set, weÂ want to show you in detail how you can:
First, weÂ need to set up the integration:
This will automatically add the necessary libraries to the Ranorex project. The following code modules will now appear in the module browser:
Step 2: Extending the "app.config" file
To ensure the Ranorex project is properly created, you need to extend the 'runtime' section in the 'app.config' file in the Ranorex project with the following information:
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:bcl="urn:schemas-microsoft-com:bcl"> <dependentAssembly bcl:name="System.Runtime"> <assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-184.108.40.206" newVersion="220.127.116.11" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Threading.Tasks" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-18.104.22.168" newVersion="22.214.171.124" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-126.96.36.199" newVersion="188.8.131.52" /> </dependentAssembly> </assemblyBinding>
Copy this code and enter it in the 'runtime' section in the 'app.config' file, right after the line <enforceFIPSPolicy enbaled="false" />:
Your 'app.config' file should now look like this:
You can nowÂ use the modules, which are included in the NuGet package, freely within the Ranorex test automation project.Modules included in the Ranorex-NeoLoad NuGet package
The following modules, and their individual variables,Â are included in the Ranorex-NeoLoad NuGet package:
This module establishes a connection to the NeoLoad runtime API. This API is used to remote control a running NeoLoad test. It must be initialized before using the following modules: Start/StopNeoLoadTest and Add/RemoveVirtualUsers.Show the variables available for this module RuntimeApiUri: The Uniform Resource Identifier (URI) of the NeoLoad REST service.
Select Edit > Preference to access these variables in NeoLoad.
This module establishes a connection to the NeoLoad data-exchange API. This API is used to transmit external data to a runningÂ NeoLoad test (it is not active if no test is running). This moduleÂ must be initialized before the modulesÂ Start/StopNeoLoadTest and Add/RemoveVirtualUsers.Show the variables available for this module The following three values provide meta information for a running test and can be used in the "filter" functionality within NeoLoad test results.
Select Edit > Preference to access the last two variables in NeoLoad.
This module startsÂ a NeoLoad test scenario. You need to define the scenario in NeoLoad before.Show the variables available for this module Scenario: The scenario, as defined within the NeoLoad test, that should be started.
Interval: The time intervalÂ (in hh:mm:ss) after which RanorexÂ retries toÂ start a specific test (recommended value: 00:00:10).
Important: Please make sure to addÂ a leading 0 before a single digit number when entering the timeout and interval values.StopNeoLoadTest
This module stopsÂ the currently running NeoLoad test.Show the variables available for this module Timeout: The maximum amount of time (in hh:mm:ss) given to Ranorex to start a specific test (recommended value: 00:01:00).
Important: Please make sure to addÂ a leading 0 before a single digit number when entering the timeout and interval values.AddVirtualUsers
This module addsÂ virtual users to a population, defined in a NeoLoad test scenario. This module can only be used when a test is already running.Show the variables available for this module Population: The population, as defined in the NeoLoad test scenario, virtual users will be added to.
This module removesÂ virtual users from a population, which is defined in a NeoLoad test scenario. This module can only be used when a test is already running.Show the variables available for this module Population: The population, as defined in the NeoLoad test, virtual users will be removed from.
Opening a website is related to a certain latency. This latency depends on various factors, such as the network connection or the browser used. ItÂ can be measured with the "Navigation Timing" API, which is offered by all browsers. If you evaluateÂ these timing values, especially when the website is under load, you canÂ localize potential bottlenecks. Eliminating the identified bottlenecks will ultimately improve the user experience.
The NuGet package offers a mechanism to calculate these timing values and transmit the results to NeoLoad. You can find a more detailed description of the navigation timingÂ here.Â The timing valuesÂ are calculated by the Ranorex/NeoLoad Nuget package:
Highlighted in green, you can see the timing values that are calculated by Ranorex and submitted to NeoLoad.
To transmit the timing values, you needÂ to drag and drop the repository root element, which represents theÂ DOM of the website under test, into the action table in Ranorex Studio. Once the NuGet package is added to the Ranorex project,Â the additional entry "SendNeoLoadTimingValues" will appear in the "Dynamic Actions" list.
Please note: This entry only appears if the root element was created after the NuGet package was added to the Ranorex project. You can find a description of how to enable the NeoLoad "capability" in an existing repository here.
The "SendNeoLoadTimingValues" action accepts a "transaction name" as an argument. WeÂ recommend using the current page as a transaction name in the Ranorex action table. As soon as NeoLoad receives the timingÂ values of this transaction, aÂ tree with the root node containing theÂ Ranorex test suite isÂ automatically created. Another subfolder is automatically created for the respective transaction name. This folder contains the timing values transmitted from Ranorex.
Important: Â Please make sure to initialize the module "ConnectToDataExchangeApi" before you use the moduleÂ "SendNeoLoadTimingValues". Otherwise, an error is thrown.Â
You can drag theÂ data series into the graph board in NeoLoad to visualize it. If you've provided meta-information, such as "Hardware", "Software" or "Location" in the "ConnectToDataExchangeApi", you can now use this information to filter timing values transmitted from Ranorex.Update meta-information in cross-browser tests
If you execute the test in multiple browsers, you have to update the filter options in NeoLoad by calling the "ConnectToDataExchangeApi" module again. To do so, bind the data column, which specifies the browsers, withÂ the "Software" argument from the "ConnectToDataExchangeApi" module. You can now compare timing values from different browsers.
Exemplary Ranorex project structure
In the screenshot below you can see an example of how you can use the modules provided in the NuGet package within a Ranorex test project:
As you can see, a connection to the runtime API is established in the global setup section. The login information take the form of global parameters.
At the very beginning,Â "StartNeoLoadTest" starts the NeoLoad test scenario. The followingÂ test case is data driven and provides the number of virtual users that will be added to the test. These values are providedÂ in "AddVirtualUsers".Â The inner loop is a cross-browser loop. It defines the browsers in which the test will be executed.
Please note: The module "ConnectToDataExchangeApi" can be called multiple times to update the current browser with the filter feature in NeoLoad.Upgrade an existing Ranorex project with the Ranorex/NeoLoad NuGet package
If you add the NuGet package to an existing Ranorex project, which already contains a Ranorex Object Repository with repository elements, the modules provided by the NuGet package are automatically available in the module browser. In this case, the "SendNeoLoadTimingValues" option won't be available in the "Dynamic Actions" list for the already existing repository items. Perform the following steps to enable this option:
1. Open the RanoreXPath editor
2. Switch to "Browser & Results"
3. Drag andÂ drop the root element from the Ranorex Spy to the matching root element in the Ranorex Object Repository.
Now, the "SendNeoLoadTimingValues" will be available in the Dynamic Actions list for the repository root element that describes the website DOM.Conclusion
In this blog, you've learned how you can combine Ranorex and NeoLoad tests. You've seen the modules and variables that are available with this integration and how you can transmit timing values to a NeoLoad performance tests. Now, you will be able to validate critical business cases under load conditions to ensure system stability under real usage conditions and identify potential bottle-necks across technology borders.Further Resources
This new release is less resource demanding and gives better user experience in applying MBT (Model Based Testing) on your test automation projects. TestCast MBT is comprehensive end-to-end MBT tool supporting TTCN-3 and Robot underlying test automation frameworks.
Test development workflow with TestCast MBT is following:
- System behavior is modeled as Input/Output Transition System
- Structural test coverage is defined
- Abstract test cases are designed and generated
- Tests are rendered into executable test scripts
- Tests are executed on underlying test execution framework
TestCast MBT Data sheet is available here.
A holistic approach to application lifecycle management (ALM) allows your teams and workers to improve application development process using a single, unified solution for software requirements, coding, testing and release.
The post Holistic Approach to Application Lifecycle Management (ALM) appeared first on Polarion Software Blog.
Part of Center for Open Source Research & Innovation, Belfast-based group will analyze open source security issues and attack patterns
BURLINGTON, MA & BELFAST, Northern Ireland â€“ Oct. 19, 2016 â€“Â Black Duck, a global leader in automated solutions for securing and managing open source software, today announced the formation of its Belfast-based Open Source Security Research Group during an event at Invest Northern Irelandâ€™s headquarters in Belfast.
Black Duck worked closely with Invest NI on the initiative, and Black Duck said it expects to add almost 60 jobs in Northern Ireland over the next four years.
The Northern Ireland group is a component of Black Duckâ€™s global Center for Open Source Research and Innovation (COSRI).
COSRI is based at Black Duckâ€™s Massachusetts headquarters. The Northern Ireland group will play a major role in COSRIâ€™s research work by analyzing open source security issues and attack patterns, and by providing customers with actionable information on vulnerabilities, corrective actions to reduce risk and strategies for effective, secure use of open source.
Black Duck CEO Lou Shipley attended the event and said â€śSince creating COSRI earlier this year, we have been increasing our strategic investments in open source security research and innovation worldwide. Northern Ireland has the depth of security research talent to meet many of our needs in the near term and in the future. Â
â€śInvest NI very quickly proved to us that Northern Ireland had both the high-quality tech professionals to meet our open source security research needs and an impressive array of cybersecurity-focused businesses that will continue to attract more attractive candidates to the region. Invest NIâ€™s guidance and support played a vital role in making this engagement happen. They will be a key strategic ally as we scale our research activities, grow our business and support Black Duck customers in the UK and Europe,â€ť said Shipley.
Simon Hamilton, Northern Irelandâ€™s Minister for the Economy, praised Black Duckâ€™s investment and said â€śOur local software industry is fueled by a pool of high-quality software engineers working in a range of leading technology disciplines. In recent years Northern Ireland has made significant investments in cybersecurity research and in growing computer science student numbers at both Queenâ€™s and Ulster universities.Â We also have a growing cluster of world-class companies involved in cybersecurity, making Northern Ireland a very attractive location for projects of this type.â€ť
Use of open source software is ubiquitous worldwide and it is an essential component in application development today, often comprising 50 percent of the code in an application. The rapid growth in open source usage has created significant security and management challenges.
Shipley noted that open source use will continue to grow because of its economic, productivity and innovation benefits. â€śOur intent is to support that growth by helping organizations use more open source more securely.â€ť
About Black Duck
Organizations worldwide use Black Duckâ€™s industry-leading products to automate the process of securing and managing open source software, eliminating the pain related to security vulnerabilities, compliance and operational risk. Black Duck is headquartered in Burlington, MA, and has offices in San Jose, CA, London, Frankfurt, Hong Kong, Tokyo, Seoul and Beijing. For more information, visitÂ www.blackducksoftware.com.
Director of Strategic Communications
Michael Oâ€™Connell and Lisa Sorrentino
Redwood Shores, Calif.—Oct 12, 2016
Yesterday, the United States District Court for the District of Nevada issued two significant rulings in Oracleâ€™s litigation against Rimini Street and its CEO Seth Ravin.
The first ruling is a permanent injunction barring Rimini Street from continuing to infringe Oracleâ€™s copyrights and other unlawful acts. The Court previously determined that a permanent injunction was warranted, noting Rimini Streetâ€™s â€ścallous disregard for Oracleâ€™s copyrights and computer systems when it engaged in the infringing conductâ€ť and that â€śRiminiâ€™s business model was built entirely on its infringement of Oracleâ€™s copyrighted software and its improper access and downloading of data from Oracleâ€™s website and computer systems.â€ť
The Courtâ€™s four-page permanent injunction prohibits certain copying, distribution, and use of Oracleâ€™s copyrighted software and documentation by Rimini Street and also imposes limitations on Rimini Streetâ€™s access to Oracleâ€™s websites. The order states, for example, that Rimini Street may not use a customerâ€™s software environment â€śto develop or test software updates or modifications for the benefit of any other licensee.â€ť The order also prohibits Rimini Streetâ€™s preparation of certain derivative works from Oracleâ€™s copyrighted software. The order applies not only to Rimini Street, but also â€śits subsidiaries, affiliates, employees, directors, officers, principals, and agents.â€ť
â€śThis permanent injunction imposes important restrictions on Rimini Street,â€ť said Oracleâ€™s General Counsel Dorian Daley, â€śand Oracle is grateful that the Court has taken steps to prevent continuing unlawful acts by Rimini Street and its executives.â€ť
Although Rimini Street has stated that there was â€śno expected impactâ€ť from any injunction, Rimini Street also told the Court that it â€ścould suffer significant harm to its current business practices if the proposed injunction were entered,â€ť which it now has been. These contradictory positions raise the issue of whether Rimini is misleading the Court or making misrepresentations to customers.
In its second ruling, the Court awarded Oracle approximately $27.7 million in prejudgment interest, with an additional amount of prejudgment interest to be awarded based on the date of the final judgment. This is in addition to the $50 million jury verdict and the $46.2 million in attorneysâ€™ fees and costs awarded to Oracle last month.
Oracle offers a comprehensive and fully integrated stack of cloud applications and platform services. For more information about Oracle (NYSE:ORCL), visit www.oracle.com.Trademarks
Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.Safe Harbor
The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle's products remains at the sole discretion of Oracle Corporation.Talk to a Press Contact
Follow Oracle Corporate