GlobalNow expands Colombian operations to Medellin Ruta N through CIS alliance

GlobalNow announced earlier today that it recently expanded its GlobalNow Colombian business operations to RUTA N’s Medellin location.  

Per Bob Foster, President of GlobalNow Colombia S.A.  “Through our alliance with Custom Information Services (CIS), we have a unique opportunity to create an outstanding team of technical engineers and help desk professionals. Custom Information Services is a well established brand with a reputation for providing high quality MSP services in the United States. Together we saw the need to grow the CIS MSP support team with experienced engineering talent, and expanding our operations in Colombia to address this need was an obvious approach. The services and location of Ruta N is ideal for our launch and continued growth to meet the high demand for CIS services.  We’ve hired our first engineers, and we are looking forward to growing the team”.

​Per Ruta N the landing of technology-based companies like GlobalNow marks the evolution towards making Medellín a hub in IT talent in service to the Americas. It requires a double strategy in which we help organizations in need of new markets to find a place in our city and work with them in order to find the best specialized local talent.

For the ACI Medellín, the city is experiencing one of the most important moments in its history with the transformation of its productive vocation towards technology. For this reason, we are committed to ensuring that companies like GlobalNow not only arrive and establish themselves, but that they can grow in their capacities every day, bringing more social and economic development to the territory. In Medellín, the articulated effort between the public, private and academic sectors, works, and for this reason GlobalNow can be sure that we will do everything possible so that their needs always have a solution in the most appropriate way.

“We celebrate that GlobalNow is expanding in Colombia and are confident that our country has the human talent and advantages to strengthen the growth of IT services-based companies. This great news positions Medellín as a digital and creative investment destination. This is the kind of investment that contributes to our talent development and the economic reactivation of our country,” said Flavia Santoro, President of ProColombia.

Per Tim Riddle, President of Custom Information Services, “CIS is excited about this opportunity and have been impressed with the quality of engineering talent that our alliance provides.  The combination of the available talent coupled with the CIS training methodology and culture of continuous improvement is allowing is to expand our great team of affordable talent.”

About GlobalNow

GlobalNow is a provider of  worldwide IT services and talent , with emphasis on a Nearshore model, with subsidiaries in Colombia and Costa Rica.

About Custom Information Services:

Custom Information Services is a provider of systems integration and IT managed services – serving a broad client base in the United States.

About Ruta N

This institution develops programs and services to facilitate the economic development of the city towards  science, technology and innovation through inclusive and sustainable Businesses. In this way they seek a joint and energized ecosystem of innovation for Medellin, with emphasis on four key ingredients: the talent training, access to capital, the generation of the necessary infrastructure and the development of innovative business. Its main purpose is aimed to improve the quality of life of the inhabitants of the city through innovation.   

About ACI Medellín

The Agency for Cooperation and Investment of Medellín and the Metropolitan Area – ACI Medellín, is an association of public entities that works to develop the territory by creating strategic international relations. This allows the city and the region to access international cooperation resources and the arrival of local and international investments.

About ProColombia

The promotion of exports of non-mining energy goods and services in markets with potential, the expansion of Colombian companies, the attraction of foreign direct investment to Colombia, the positioning of the country as a tourist destination for vacations and meetings and Colombia Country Brand, are the main axes on which ProColombia focuses it’s work.

Automating API Testing using Postman

Last September I wrote this blog entry describing how to implement API testing using a combination of Python and Behave.

In this new post, I would like to describe how I also use Postman to test APIs. Postman is a Google Chrome app which we typically use to quickly test APIs to see the returned results. Postman is a powerful HTTP client that allows us to test complex HTTP requests in order to validate the responses to make sure they retrieve the right information. Using Postman allows us to request data and get the responses in a friendly GUI.

Postman has several methods to interact with endpoints, these methods are:

I am not going to explain all of them, I just want to explain those that are best used when testing an API, they are:
● GET -> fetch information
● POST -> add new data
● PUT- > replace all the existing data
● PATCH -> update some existing data fields
● DELETE-> delete existing data

Let me begin by explaining how to create a collection in postman. Collections allow you to group individual requests together, and it helps to organize them into folders.

So, our first step is to create a new collection, we can name it “jsonplaceholder”, which will be displayed in the left panel. The next step is to create our first request. For this example, we are using the jsonplaceholder endpoints that are open to play with its services.

To create a new request we follow these steps.

  1. Right click on the collection created, select “Add Request”
  2. Enter a name like “Consume jsonplaceholder”, then click on “Save to jsonplaceholder”
  3. Click on the request displayed under the collection we have created.
  4. Make sure the “GET” method is selected
  5. In the field “Enter request URL” please enter ->
  6. Click on “Send” button

At this point we have created our first request, and receive our first response from the endpoint with a list of posts and a Status code of 200. We should receive a similar response to this screenshot.

When we validate responses, we should make sure the json retrieved is the expected one, with the right forma and status code; and check the time it took to receive an answer.

Now that we are able to get information from and endpoint, we can attempt to store some data to an API. For this we would need to use the “POST” method. We create by following these steps:

  1. Right click on the collection created, select “Add Request”
  2. Enter a name like “Add post”, then click on “Save to jsonplaceholder”
  3. Click on the request displayed under the collection we have created.
  4. Click on method dropdown, select “POST”
  5. In the field “Enter request URL” please enter ->
  6. In “Body” section, please enter the following json body:
    “userId”: 4545,
    “id”: 101,
    “title”: “This is an example”,
    “body”: “some information”
  7. Click on “Send” button.

Once the request has been processed, a 201 Status code (Created) is displayed as a response as well as the endpoint will retrieve a json response with the id that belongs to the post we have created in the system.

As you can see, testing APIs using Postman is not complicated. Postman also offers some interesting additional features. For example, it allows us to create environments.

What is the environment?

Basically, it allows to run requests and collections against different data sets. It means we can have an environment for Prod, another for Testing and another one for development. An important fact of using environments is that we can store variables that will be used in several tests. For example, let’s imagine we need to authenticate to and endpoint before calling any other service, the authentication endpoint will retrieve a token that needs to be sent to each request since it is required to get a response; the token can be stored in a variable that will be passed to each test.

How to create this environment and variables?

  1. In the right corner of Postman we can see a “configuration” icon
  2. Click on “Add” button. Please add an environment name like “Testing”.
  3. Under “VARIABLE” enter “url”.
  4. Under “INITIAL VALUE enter “”
  5. Click on “Add” button.

At this point we created a new environment as well as a variable called “url. Probably, you are wondering what is the purpose of it? Lets modify our tests that we created before in order to use the variable we have set. Open both requests and replace the url we have for this -> {{url}}

As we can see, we are using the same variable in two different requests, so let’s click on “Send” for both requests, the same responses from the previous execution will be reflected.

Postman also allows us to create variables either in Pre-request Scripts or Tests according to what we need. Here is how to save a specific value from the json response in a variable that we would need in another request. In order to save a value in a variable we should follow these steps:

  1. Click on “Tests” tab.
  2. Please enter the following code:

var post_id = JSON.parse(responseBody);

  1. Click on “Send” button.

Here we have created a new variable, in order to see this variable, we can click on “configuration” icon next to the “Testing” environment. A modal will come up with the new variable created, each time we call this endpoint, that variable will be overridden with the new id it gets as response.

Postman has become one of the most useful tools for API testing since we can create very powerful tests that can even assert data. If you are considering beginning testing API testing, you can easily research this tool to discover all the advantages it can bring to your project. In this blog, we learned how to get up and running with testing HTTP API endpoints with Postman, how to save variables and create environments. By using Postman, you can make your team and your development workflow more productive by reducing the time spent on testing and sharing API specifications and endpoints. This is especially important when working in an Agile team environment.

Getting started with QA Automation Can be Painful – How to Accelerate Deployment

Note: The automation tool referenced below was created from the great work and by our skillful Automation Engineering team

Yeah, it can be, if this is the first time that you are considering the implementation of test automation in your software project, the evaluation process and deployment of the solution could become a nightmare. There are many unknowns and with the number of techniques and tool options available, it is easy to go down the wrong path. Or maybe your team does not have the necessary skills to build an automation framework from scratch, in the end, a mistake in this area could easily impact your expected ROI. Important considerations include – which language should you use, should you try with an open-source or a proprietary one? what about reports? Parallel executions? Or loggers, what if you need to use data-driven testing?

We developed a Software QA automation accelerator tool, that helps our clients successfully address the above challenges as part of our client engagements. It has proven success in multiple web-based automation projects, and it has been implemented using both Java and C# , based on client’s platform requirements. One of the strengths of our framework is that the stack of tools used is all open source, meaning no incremental charges for third party licenses when implementing your automated test cases.

How do we accelerate the automation process?

It is simple, based on our experience of working on previous projects, we realized that every web automation solution is following a common pattern of functionality that must be present for the solution to be robust, reliable and useful. So, we took those basic units and included the implementation in our framework. Let’s describe it:

Selenium, by far it has become the standard framework for automation. It is open source, with huge support from the technology community and constant updates made to the framework. With Selenium as the foundation, we use the Page Object pattern, an industry standard that creates an object for each page assessed in the test cases. This helps with the encapsulation of the implementation and improves the quality of the test case classes – since they will be focused on the test “stimulus”, and not the interaction with the selenium driver.

In the following image, you can see an example of a functional Page Object with the useful web elements from the page and the actions that can be executed with them.

With selenium the implementation of Selenium Grid is essential, selenium grid is a tool that allows you to execute multiple instances of browsers on the same machine at the same time. This allows parallel execution, thus reducing the entire execution time of the suite. In some cases, selenium grid was executed using a virtual machine, but there is often a problem with this approach – it can consume significant resources from the host machine and sometimes the virtual machine stalls or is in an invalid state – negatively impacting execution. As a solution to this problem we often implement the selenium grid in docker instances. Docker is a virtualization tool that creates containers, you can create as many containers as you want and as the host can support. Each container is the host of a single browser driver, which allows us to execute the test cases in parallel. The main benefit from Docker compared to virtual machines is that if at some point something fails you can stop the failing container and create a new one within minutes. In the following image, you can see a selenium grid instance with 2 chrome browsers and one Firefox browser.

Normally, there are test cases that basically share the same steps but differ on the input data. The typical way to automate them is to create one test case for each scenario and copy and paste the steps, but this is inefficient and difficult to maintain. Instead, we use a data-driven approach, that basically means that we reuse the same steps for all the scenarios, but the input stimulus data will come from a .json file. This is much easier to maintain and generates a high level of flexibility for the implementation of new test cases. Instead of creating new steps you only add valid stimulus in the input file and apply it accordingly. In the following image you can see a simple example of two test cases with data-driven testing:

You can have the best automation framework that never fails and finds multiple bugs, but if you are not capable of effectively sharing the results, then the framework is of no used to the business. Which is why we have included Extent Reports in the accelerator, that shows in a very user-friendly way how the execution job performed, how many test cases passed, were idle, or failed, For failed cases, a screenshot of the last screen that was seen at the moment of the error is attached. The reports include the time, user, operating system and details of the machine where they were executed. In the following images, you can see examples of the automation report.

Also included is logger (a best practice in automation), it is useful because it will note every action where the driver interacted with the web page. This allows the user to understand what happened in real-time with the test case, and in case of failures – easily see the last successfully command that was executed , allowing debugging to begin from there. In the following image, you can see a small example of the details that the logger prints for one specific test case:

We are also working on the development of an automation accelerator for mobile platforms using Appium as the mobile framework, this one will include all the features described above in order to reduce the time for automation.

Client Testimonials: GlobalNow On-Demand Talent Services

GlobalNow provides “On-Demand” IT talent from within the U.S. and around the world. We respond rapidly to client needs with high quality and affordable talent.

Check out these recent examples:

Roger Hess from Intelligent Sense

Our client needed a highly skilled QA lead, GlobalNow provided Richard from US/Mexico within 24 hours, now working on a long time project as an integral part of the team.

Alan from Axis Software


One of our clients lost a critical DBA, and asked us to help fill as quickly as possible. GlobalNow provided a senior DBA Noel from Bolivia within 48 hours, who spent two months addressing ongoing database requirements with a high level of productivity. Thank you Noel!

Shawn from PointClear Solutions


As one of our strategic providers, GlobalNow provides talent for both our short term and long term needs – allowing us to staff as needs ebb and flow. For example, we needed a part time BA ASAP for a client project, Connie from the U.S. began within a week. Good work Connie!

Michael from Solutia Consulting


We needed a proven architect that could help us design and deliver a complex AI solution for a client – GlobalNow provided Roygar From Uruguay within one week, a systems engineer that helped us design and build a fantastic solution for our client. Good job Roygar!

Diego from Oktara in Costa Rica


We needed a senior mobile developer and a .NET developer for an urgent requirement. GlobalNow provided Andres from Colombia within 3 business days, and Camilo from Colombia within eight hours to help resolve critical issues for our client. Thank you guys!

Parimal from Stratecha


Our client needed both a PHP developer and a software QA professional to support their team. GlobalNow quickly provided both Marny and Alonso from Costa Rica who travelled to U.S., integrated with the client’s team, and delivered on a daily basis while receiving glowing compliments from our client. Way to go guys!

Need quality talent, please contact us at or 469 730 2714 in the U.S.

Blended Team Success – What’s the secret?

I’ve been fortunate to be able to work closely with people from a variety of countries, industries, and cultures—helping build and manage technology-oriented teams. At times it has been challenging, but for the most part it has been very rewarding; quite frankly it’s my favorite part of my job.

It seems many companies (large and small) have learned quite a bit over the last several years on how to create and manage productive teams. In the technology world, most companies now use a combination of internal engineers, freelancers, and subcontractors to build their delivery and support teams. Often these teams are a combination of local and remote talent.

So, what is the secret for creating successful blended teams?

Below are five of the most important techniques used by our clients that I have observed over the years which I believe have contributed greatly to their success:

Blur the lines between employee and non-employee. Obviously for career development and contractual purposes, employees should be treated differently than contractors. But for everyday team engagement, foster a culture of inclusion, parity, and respect. Not only is this the right thing to do, but it encourages enthusiasm and personal ownership of project activities.

Know the individuals and their interests. It means talking to individuals about their life and issues (to the degree that they are comfortable). It takes time, but it encourages engagement by allowing team members to know they are not “just” a resource, but a person appreciated for their unique talents and interests.

Create an “idea” culture by encouraging and appreciating idea generation from all parties. There are a bunch of smart people out there with very helpful ideas. Set an expectation that idea generation is a normal part of team activities, which will help with productivity and individual fulfillment.

Be practical and transparent by reminding people when necessary that it’s not all “Kum ba yah.” We all need to be reminded sometimes that a business must make money to be sustainable. Sometimes this means hard decisions need to made, but be clear and as transparent as possible on expectations—share state of affairs, good and bad—which in turn builds team trust.

Encourage direct connection among team members to share ideas and interests. This is like the first technique, but it can solidify the foundation of a team, and it’s a real opportunity for people to make global friends—sometimes for life.

The above are just some of my observations and my hope is to continue to learn from clients and partners.

Bob Foster – GlobalNow IT


Rest API testing using behave in Python

by: Jason Campos – Senior QA Engineer – GlobalNow IT

API testing is an important component in a company’s QA strategy since their client’s often consume the API endpoints to get the necessary information for execution of the business. In most cases, manual testing is initially performed at the most important endpoints to ensure the customers retrieve the information needed; followed by automation of the test scripts for daily execution using Continuous integration.

I recently implemented test automation for a client’s REST API; using Python + behave as the primary framework, and I would like to share my experience and techniques used for this automation project.

Read more