2

I am working on a project in which we keep one wiki platform in sync with the content of other. The way we do this is a document edit on 'Wiki A' kicks of a data flow pipeline that transforms data from format of of 'Wiki A' to format of 'Wiki B' and sends this data to 'Wiki B' for import.

I have 3 components.

  • 'Wiki A' which is in PHP
  • Translation Service which is a Ruby-on-rails service
  • 'Wiki B' which is in Java

I want to build an automated end-to-end testing framework which should ideally be able to test the following: The main need for the testing is my unit tests for each product cannot test the communication between the products and do not test the whole end-to-end data flow.

  1. Edit a page on 'Wiki A'
  2. Test that it kicks of the data flow
  3. Test that the TranslationService transformed the data
  4. Test that 'Wiki B' imports the transformed data

Based on initial research, my options are a recording tools such as Selenium. Selenium can handle the multiple products I want to test, but from what I have seen the tests are fragile. The other option is some development testing tool like Cucumber/Capybara with which I can write robust tests, but I am not sure how it works in a multiple product architecture, each written in a different language.

Am I looking at it in the correct way? Am I too ambitious to attempt a singular end-to-end testing framework spanning multiple products?

1
  • 1
    If Wiki A and Wiki B both have an API, you might consider using those for your integration test. Without knowing more about you and your project, it is hard to say whether you are too ambitious.
    – user246
    Mar 3, 2016 at 1:49

1 Answer 1

0

Cucumber is a framework that is independent of the actual test implementation. So you can use it along with Selenium or whatever you like.

If you are doing an end to end test you can write your tests to actually log into Wiki A, create a page/make an edit just as a user would, and then log into Wiki B also as a user for the validation. This means that the technology used to create the Wikis is irrelevant.

The main potential sticking point I can see is if there is a delay between an update to Wiki A and transferring the data to Wiki B, your framework would need a way to know when it was ok to do the validation.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.