All Projects → lemoncheesecake → lemoncheesecake

lemoncheesecake / lemoncheesecake

Licence: other
Python framework for end-to-end / QA testing

Programming Languages

python
139335 projects - #7 most used programming language
typescript
32286 projects

Projects that are alternatives of or similar to lemoncheesecake

Qawolf
🐺 Create browser tests 10x faster
Stars: ✭ 2,912 (+7770.27%)
Mutual labels:  qa, end-to-end-testing
Automation Arsenal
Curated list of popular Java and Kotlin frameworks, libraries and tools related to software testing, quality assurance and adjacent processes automation.
Stars: ✭ 105 (+183.78%)
Mutual labels:  qa, testing-framework
pysys-test
PySys System Test Framework
Stars: ✭ 14 (-62.16%)
Mutual labels:  qa, testing-framework
test junkie
Highly configurable testing framework for Python
Stars: ✭ 72 (+94.59%)
Mutual labels:  qa, testing-framework
throughout
🎪 End-to-end testing made simple (using Jest and Puppeteer)
Stars: ✭ 16 (-56.76%)
Mutual labels:  end-to-end-testing
patchgirl
Manual reproducible web API tests for web developers
Stars: ✭ 95 (+156.76%)
Mutual labels:  qa
bento
🍱 bento is an English-based automation language designed to be used by non-technical people.
Stars: ✭ 32 (-13.51%)
Mutual labels:  qa
LuluTest
LuluTest is a Python framework for creating automated browser tests.
Stars: ✭ 14 (-62.16%)
Mutual labels:  testing-framework
AutoMeter-API
AutoMeter-API是一款针对分布式服务,微服务API功能和性能一体的自动化测试平台,一站式解决应用,服务,API,环境管理,用例,条件,测试场景,计划,测试报告,功能/性能测试兼容支持的一体化工作平台
Stars: ✭ 105 (+183.78%)
Mutual labels:  testing-framework
Hallstatt
Low-ceremony testing framework optimized for modern C#
Stars: ✭ 24 (-35.14%)
Mutual labels:  testing-framework
FoQA
Container for Quality Assurance utilities to be included in QA/testing variants of Android apps.
Stars: ✭ 15 (-59.46%)
Mutual labels:  qa
protractor-starter
#archived: protractor-starter end-to-end tests setup also for non angular application
Stars: ✭ 37 (+0%)
Mutual labels:  end-to-end-testing
dialogbot
dialogbot, provide search-based dialogue, task-based dialogue and generative dialogue model. 对话机器人,基于问答型对话、任务型对话、聊天型对话等模型实现,支持网络检索问答,领域知识问答,任务引导问答,闲聊问答,开箱即用。
Stars: ✭ 96 (+159.46%)
Mutual labels:  qa
Chatbot
基于语义理解、知识图谱的聊天机器人
Stars: ✭ 30 (-18.92%)
Mutual labels:  qa
nightwatch101
使用 Nightwatch 實現 End-to-End Testing ★
Stars: ✭ 42 (+13.51%)
Mutual labels:  end-to-end-testing
nim-contra
Lightweight Self-Documenting Design by Contract Programming and Security Hardened mode.
Stars: ✭ 46 (+24.32%)
Mutual labels:  testing-framework
babel-plugin-transform-react-qa-classes
Add component's name in `data-qa` attributes to React Components
Stars: ✭ 41 (+10.81%)
Mutual labels:  qa
kuickcheck
A property based testing framework for Kotlin
Stars: ✭ 23 (-37.84%)
Mutual labels:  testing-framework
fd-cypress-recorder
Browser plugin Fd Cypress Recorder captures user interactions and generates Cypress test code.
Stars: ✭ 25 (-32.43%)
Mutual labels:  end-to-end-testing
TorXakis
A tool for Model Based Testing
Stars: ✭ 40 (+8.11%)
Mutual labels:  testing-framework
https://github.com/lemoncheesecake/lemoncheesecake/blob/master/doc/_static/logo.png?raw=true

lemoncheesecake: Test Storytelling

lemoncheesecake is an end-to-end test framework for Python that brings trust around test results. It allows test developers to be very explicit about what their tests really do with logging, matchers, file attachments, etc..

Here is a test example:

import json
import requests

import lemoncheesecake.api as lcc
from lemoncheesecake.matching import *

URL  = "https://api.github.com/orgs/lemoncheesecake"

@lcc.suite("Github tests")
class github:
    @lcc.test("Test Organization end-point")
    def organization(self):
        lcc.set_step("Get lemoncheesecake organization information")
        lcc.log_info("GET %s" % URL)
        resp = requests.get(URL)
        require_that("HTTP code", resp.status_code, is_(200))
        data = resp.json()
        lcc.log_info("Response\n%s" % json.dumps(data, indent=4))

        lcc.set_step("Check API response")
        check_that_in(
            data,
            "type", is_("Organization"),
            "id", is_integer(),
            "description", is_not_none(),
            "login", is_(present()),
            "created_at", match_pattern("^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z$"),
            "has_organization_projects", is_true(),
            "followers", is_(greater_than_or_equal_to(0)),
            "following", is_(greater_than_or_equal_to(0)),
            "repos_url", ends_with("/repos"),
            "issues_url", ends_with("/issues"),
            "events_url", ends_with("/events"),
            "hooks_url", ends_with("/hooks"),
            "members_url", ends_with("/members{/member}"),
            "public_members_url", ends_with("/public_members{/member}")
        )

And here are the corresponding test results:

test results

NB: in real test code, you'd better use lemoncheesecake-requests when doing HTTP / REST API testing.

Features

  • Advanced test hierarchies using suites, tests and nested suites
  • Test description and metadata: tags, properties (key=value associations) and links
  • Support for test filtering
  • Multiple reporting flavors built-in: HTML, JSON, XML, JUnit, ReportPortal, Slack notifications
  • BDD support using behave
  • Test parallelization
  • Rich CLI toolbox

lemoncheesecake is compatible with Python 2.7, 3.7-3.10.

Installation

lemoncheesecake can be installed through pip:

$ pip install lemoncheesecake

For more details about installing lemoncheesecake with the non-default reporting backends, see here.

Documentation

The documentation is available on http://docs.lemoncheesecake.io.

The lemoncheesecake ecosystem

Contact

Bugs and improvement ideas are welcomed in tickets. A Google Groups forum is also available for discussions about lemoncheesecake: https://groups.google.com/forum/#!forum/lemoncheesecake.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].