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.
Edit a page on 'Wiki A' Test that it kicks of the data flow Test that the TranslationService transformed the data 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? Which software or framework will best suit my requirement.?