Code Monkey home page Code Monkey logo

cello's Introduction

CELLO

Build Status

What?

Cello is a framework for automated web UI tests based on Watir-Webdriver. It uses the Cucumber readable behavior specification language to specify tests based on the Page Object Model. It is written in Ruby, and extended by metaprogramming and magic.

This framework isn't officially released or stable yet, but the concept is already done. It consists in a way to implement tests fast, like when we record using tools like the Seleium IDE, but without all the terrible code generated by those tools.

What a funny name :-p!

The name is Cello not just because I play and love it, but because as a music composition consists of steps that when synchronized guide the musician to play wonderful songs, the acceptance automated tests are steps that when synchronized guide the developer to keep coding wonderful pieces of business value.

What is the idea?

The core idea is based on two techniques and lots of ideas:

  • The first one is the Page-Object Model, that provides a way to make tests more maintainable.
  • The second one is the "record but not replay", that allows people without programming skills generate automated regression tests in an easier and faster way.

No one technique is mandatory, but the first one is strongly recommended.

We still have to much work to do (as you can see further below, in this very document), but, if you want, you can fork it and have fun!

It's STRONGLY recommended to not use it for commercial projects just yet, because it will change too much and we never tested it in a real project. We recommend you use it to emulate a project and, if possible, send us your example to be added on our library.

The way we chose to test our framework was... writing tests with it! This way we keep a stable version of it, and we can overcome the limitations of writing new features to cover the tests that weren't working and build a library of examples to future users.

So, this way, if you are not a developer, but an awesome QA with a little experience with code, you can help us by exploring this tool a little bit in your free time, and we will try make you happy fixing the bugs and implementing the new features you end up suggesting by writing great tests. These examples will be stored on our repository with your author credentials.

Instructions

Developing

To develop cello, you are going to need Bundler

$ git clone [email protected]:camiloribeiro/cello.git
$ cd cello
$ bundle install
$ rake

The last step is launching the regression tests and all should be green.

If you have any problems, please let us know.

Using

To use it you will need the development environment described in this document. Then you can follow the bugbang example inside the cello/example directory.

Soon I will provide more use descriptions :)

FEATURED

  • X-Platform: It does not matter if you are a Apple fan, A linux hard user or a windows geek. You can use it ;)

  • X-Browser Running: You can create different browsers to different tests, and can use it in parallel

  • Agnostic approach: You can choose between classical script, BDD, Object Oriented tests and hybrid tests to structure your tests. Also there is not a particular BDD tool to use it.

  • Restricted and unrestricted interface: By nature, you can do only do what an user can do, example: It is not possível to access non visible/enabled elements. Also can use the common Watir common interface to access them if necessary, therefore, it is not recommended.

  • Easy DSL: You will be able to create your DSL soon, but for while you have a simple DSL to work with.

  • Rspec asserssion: Even without a mandatody Rspec approach, you can use the 'should/should_not' assertions in your testings

ROADMAP

  • DSL: Based framework that consists on a metaprogramming way to create customized test methods to each single project using a new DSL to provide test methods in execution time using only one line description for each element.

  • Selenium: Change Watir-webdriver to Selenium

  • Gem: Create the cello gem that will:

    • Create project

    • Get a page and write the elements in the page

  • DDT: Data driven testing by nature

LICENSE

Copyright 2012 Camilo Ribeiro [email protected]

This file is part of Cello.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

cello's People

Contributors

rafaelalmeida avatar vitorbaptista avatar

Watchers

Eduardo avatar James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.