{ "info": { "author": "Ye Yang", "author_email": "ye.yang@cavia.io", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Software Development :: Testing" ], "description": "[\u4e2d\u6587 README](./README(cn).md)\n\n---\n\n**Guide**\uff1ahttps://ngta.readthedocs.io\n\n**Note**: \n* from version 1.0, only support python>=3.5.2.\n* from version 2.0, don't compatible with unittest.\n* from version 4.0, only support python>=3.6.5.\n---\n\n### Introduce:\n\nNGTA's full name is Next Generation Test Automation, it designed with following keywords:\n* Business independent.\n* Cross platform.\n* Powerful parametrize for testcase.\n* Add testbench concept.\n* Add events mechanism.\n* Local mode:\n * powerful yml configuration with schema.\n * HTML report can be extended and customized.\n * Support running testcases with multi-process when testbench is not exclusive.\n* Agent mode:\n * Consume testcase from RabbitMQ with multi-processes. \n * Provide Http Restful interface.\n * Support Distributed.\n * Integrate with cavia platform.\n * backend: [magna](https://github.com/cavia-io/magna)\n * frontend: [porcellus](https://github.com/cavia-io/porcellus)\n\n---\n\n### Installation\n1. Install ngta\uff1a\n > pip install ngta\n2. Generate work dir\uff1a\n > python -m ngta init --dest-dir=${WORKDIR} --include-sample\n\nNote: ${WORKDIR} indicate the target dir.\n\n**Why we need work dir:** \n1. Test code also need version control, please use GIT.\n2. Good working structure is helpful for managing testcases.\n\n**The generated work dir:**\n```\n${WORKDIR} root dir\n|-- bin \n |-- agent.exe exe file for installing test agent as service in Windows.\n |-- agent.service systemd service file for linux. \n |-- agent.xml the config file for installing as service in Windows.\n|-- cases tesetcase dir\n |-- sample1 project or product dir1(GIT submodule1)\n |-- sample2 project or product dir2(GIT submodule2)\n|-- conf agent config files \n|-- lib internal libraries.\n|-- logs userd for saving log, result and report.\n|-- .ngta anchor file, also used to store configuration.\n```\nNode: For integrating with platform, create each project or product as git repository, and put it as git submodule into ${WORKDIR}/cases.\n\n\n---\n\n### Sample\uff1arun test by yml config\n1. Open command-line, run following commands:\n > cd ${WORKDIR} \n > python -m ngta run --config=cases\\sample\\base\\config.yml\n2. After running finished, we can found log and report in `${WORKDIR}\\logs`.\n3. In `${WORKDIR}\\cases\\sample\\base\\config.xml`, it config how to load test in `${WORKDIR}\\cases\\sample\\base\\test_equal.py` and inject the parameters.\n\n\n### Sample\uff1arun test by path\n1. Open command-line, run following commands:\n > cd ${WORKDIR} \n > python -m ngta run --locate=sample.base.test_equal\n2. After runing finished, we can found log and report in `${WORKDIR}\\logs`.\n\n**Note**\uff1a \n* `--locate` can be a `package`, `module`, `class`, `method`, `py file` or `dir`.\n* When specify `--locate`, it also support other arguments `--tag`, `--include`, `--failfast`, `--repeat-number` and etc. \n\n\n### Sample\uff1arun .py file\n1. Open command-line, run following commands:\n > cd ${WORKDIR}\\cases\\sample\\base \n > python test_equal.py\n2. After runing finished, we can found `report.html` in `${WORKDIR}\\cases\\sample\\base`.\n\n### Different with unittest.TestCase:\nReview `${WORKDIR}\\cases\\sample\\base\\test_equal.py`: \n```python\n# coding: utf-8\nfrom ngta import TestCase, tag, test\n\n\nclass EqualTestCase(TestCase):\n @tag(\"regression\")\n @test(u\"Test {value1} equal with {value2}\")\n def test_int(self, value1=1, value2=2):\n msg = \"%s should equal with %s.\" % (value1, value2)\n self.assert_that(value1, msg).is_equal_to(value2)\n```\n* `@tag` specify the tag `regression`\n* `@test` used to specify this is a testcase.\n* `assert_that` reference: [assertpy](https://github.com/ActivisionGameScience/assertpy)\n\n**Report Sample**: \n* Screenshot: ![](./docs/_static/report.png)\n* HTML: [report.html](./docs/_static/report.html)\n\n---\nMore features: [Guide](https://ngta.readthedocs.io) \n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/cavia-io/ngta", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "ngta", "package_url": "https://pypi.org/project/ngta/", "platform": "Posix; MacOS X; Windows", "project_url": "https://pypi.org/project/ngta/", "project_urls": { "Homepage": "https://github.com/cavia-io/ngta" }, "release_url": "https://pypi.org/project/ngta/4.2.9/", "requires_dist": [ "jinja2", "jsonschema (>=3.0.1)", "psutil", "pyyaml", "assertpy", "deepdiff", "coupling (>=1.1.1)", "etcd3-py", "kombu", "tornado", "gitpython", "requests", "sqlalchemy ; extra == 'api'", "records ; extra == 'api'", "pypika ; extra == 'api'", "sphinx ; extra == 'doc'", "sphinx-intl ; extra == 'doc'", "recommonmark ; extra == 'doc'", "sphinx-markdown-tables ; extra == 'doc'", "selenium ; extra == 'web'" ], "requires_python": ">=3.6.5", "summary": "Next generation test automation.", "version": "4.2.9" }, "last_serial": 6006503, "releases": { "0.18.4": [ { "comment_text": "", "digests": { "md5": "a165fc72d54819b87ecab072aa161d54", "sha256": "17ba7fec177562ad8a5d8e0f83613d02070c4cd95ffef5888d1e4193e20a476c" }, "downloads": -1, "filename": "ngta-0.18.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a165fc72d54819b87ecab072aa161d54", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 378598, "upload_time": "2018-07-02T01:40:04", "url": "https://files.pythonhosted.org/packages/1c/fa/71bef780ab789160bac6e67fb26175f359d8871e161f4ba15aa3eb4dce01/ngta-0.18.4-py2.py3-none-any.whl" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "e2c14b0ad3e52e00dc386b7d4bad82e9", "sha256": "ec30057b380764a99ce076bd07a0fb5ad17699e60b51077da420062bf45c722b" }, "downloads": -1, "filename": "ngta-1.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e2c14b0ad3e52e00dc386b7d4bad82e9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5.2", "size": 378570, "upload_time": "2018-07-06T02:12:03", "url": "https://files.pythonhosted.org/packages/e0/53/4390c942f7c1dee2c5cb3df9c975f376c56ebe7b67c11a59ef837f12b1c8/ngta-1.0.3-py2.py3-none-any.whl" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "7d159d3a10ac10be3e4b0276f409d4a4", "sha256": "db2c8c34105107a6cfb1facefe8ef343372889347a824aac43477be15983a5f4" }, "downloads": -1, "filename": "ngta-1.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7d159d3a10ac10be3e4b0276f409d4a4", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5.2", "size": 538762, "upload_time": "2018-07-10T09:27:27", "url": "https://files.pythonhosted.org/packages/bc/94/c90112363d6e3bfc4f9a410ec3f51f40ef42fbb1d1887b1bf418aae98fe6/ngta-1.1.1-py2.py3-none-any.whl" } ], "1.4.4": [ { "comment_text": "", "digests": { "md5": "a958d0369bc6e24f0358c54234efc1c6", "sha256": "b395c93d9eb95c0937efe0baa25be8e6acf8494a48854b63e2c3324d20be8067" }, "downloads": -1, "filename": "ngta-1.4.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a958d0369bc6e24f0358c54234efc1c6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5.2", "size": 383103, "upload_time": "2018-07-24T13:41:27", "url": "https://files.pythonhosted.org/packages/50/a7/2845364de5eeb9a14246f848bca01f9a18bdc6f1cc13d128f3d2b55c24c3/ngta-1.4.4-py2.py3-none-any.whl" } ], "2.5.18": [ { "comment_text": "", "digests": { "md5": "9d544f12bc9cc6703d46194e6c978191", "sha256": "fd1b24b9e01537ddcf00b6c5ee3b95e590a83733fed6d64dfd70b72cb88aa347" }, "downloads": -1, "filename": "ngta-2.5.18-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9d544f12bc9cc6703d46194e6c978191", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5.2", "size": 407591, "upload_time": "2018-10-11T02:43:47", "url": "https://files.pythonhosted.org/packages/91/c7/c22f7c9243a3e9a6d0a33685fca12cf18f688acbe4f87716ba46bab1ddb9/ngta-2.5.18-py2.py3-none-any.whl" } ], "3.2.5": [ { "comment_text": "", "digests": { "md5": "32adb0b7eadf2633f784b03c6336901e", "sha256": "b1ee4aa68eecab5ca7510a43a2ea59b0b5b7770b05e70f1c33838b7d4114d8d4" }, "downloads": -1, "filename": "ngta-3.2.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "32adb0b7eadf2633f784b03c6336901e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5.2", "size": 402388, "upload_time": "2019-04-12T07:34:25", "url": "https://files.pythonhosted.org/packages/c9/c7/80c441a9add8067bce4d879962c0b03b457e944e043e00f8405c2e3c8a33/ngta-3.2.5-py2.py3-none-any.whl" } ], "4.1.8": [ { "comment_text": "", "digests": { "md5": "6e2385818704e86ab08ed6c1b8a33a85", "sha256": "d3d7866a45278c33abf68a39a148276b87b6294b44858e3ea2ddd374d5d29ae2" }, "downloads": -1, "filename": "ngta-4.1.8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6e2385818704e86ab08ed6c1b8a33a85", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6.5", "size": 394740, "upload_time": "2019-07-26T07:26:23", "url": "https://files.pythonhosted.org/packages/a6/50/91dd55fa858d295de28a10aa811e4d580b8c21e241e941b3795e3c87c1a3/ngta-4.1.8-py2.py3-none-any.whl" } ], "4.2.4": [ { "comment_text": "", "digests": { "md5": "3280593413c08e37518bbea5ffd56ee0", "sha256": "a32288dd53c8d3b434f8191502f2d6fdd1937560f87a749f70c2dcc9c2d2705e" }, "downloads": -1, "filename": "ngta-4.2.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3280593413c08e37518bbea5ffd56ee0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6.5", "size": 396925, "upload_time": "2019-08-09T03:05:51", "url": "https://files.pythonhosted.org/packages/e9/28/77b3844b415b7643cee479458898014f41802148a6a996e3f47281c2cd39/ngta-4.2.4-py2.py3-none-any.whl" } ], "4.2.5": [ { "comment_text": "", "digests": { "md5": "4d7c64a54edf2a014f7774c7e806a778", "sha256": "7d97e84fea40f9e17d91cdd8e9f3abb42d188ab14765aca28075246c72a89c40" }, "downloads": -1, "filename": "ngta-4.2.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4d7c64a54edf2a014f7774c7e806a778", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6.5", "size": 397047, "upload_time": "2019-08-12T02:55:42", "url": "https://files.pythonhosted.org/packages/cd/9e/c6266c248ec3d5cede7411afe38ca53d4b674eba2cc1c75148eacaee5d1f/ngta-4.2.5-py2.py3-none-any.whl" } ], "4.2.6": [ { "comment_text": "", "digests": { "md5": "95247a916159d7508e672336e2f4fe48", "sha256": "a56ef73ea4e503e8abc74147597992c7809e13bccdbc4510f4955016bfc6e37d" }, "downloads": -1, "filename": "ngta-4.2.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "95247a916159d7508e672336e2f4fe48", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6.5", "size": 397067, "upload_time": "2019-08-15T10:05:03", "url": "https://files.pythonhosted.org/packages/73/56/afa21bafc72f54895120d6f5d4492c5f68860fe096eab9e6b0ebdcf67a27/ngta-4.2.6-py2.py3-none-any.whl" } ], "4.2.7": [ { "comment_text": "", "digests": { "md5": "3f1df64e95abf179d8c7b9f5846a1f7a", "sha256": "cce47f49fea0603de091a18edb769dd82503ee8a026d70f33eb38ef2253b0938" }, "downloads": -1, "filename": "ngta-4.2.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3f1df64e95abf179d8c7b9f5846a1f7a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6.5", "size": 397104, "upload_time": "2019-08-26T05:36:58", "url": "https://files.pythonhosted.org/packages/09/fa/e36c637c44ed861e46b2b7ea845c420cd7ef9f10eb4e4a8085ca302de6e6/ngta-4.2.7-py2.py3-none-any.whl" } ], "4.2.8": [ { "comment_text": "", "digests": { "md5": "324564c6502272e357ac25a42fb4163e", "sha256": "650f14189e9e6ced5163535b6f88c774c31e5aa27ae83c0d764d22b1bdb5c63e" }, "downloads": -1, "filename": "ngta-4.2.8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "324564c6502272e357ac25a42fb4163e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6.5", "size": 397047, "upload_time": "2019-09-26T06:11:08", "url": "https://files.pythonhosted.org/packages/dc/82/4418e183ecae639d5be3ad9d1f62dc78078bac8d92a4230c1d677a4dd0ef/ngta-4.2.8-py2.py3-none-any.whl" } ], "4.2.9": [ { "comment_text": "", "digests": { "md5": "586a6f00a17ab7088a97b5e459b188b3", "sha256": "5d2abafbb38fb3147b38a3d56dcc742c8c73497f5e68d7f94c7b077e369f1433" }, "downloads": -1, "filename": "ngta-4.2.9-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "586a6f00a17ab7088a97b5e459b188b3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6.5", "size": 397418, "upload_time": "2019-10-14T09:35:04", "url": "https://files.pythonhosted.org/packages/57/a8/f9931003fd558a149440e345dfa70287bf4a0bc2898b5f24979358b186d0/ngta-4.2.9-py2.py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "586a6f00a17ab7088a97b5e459b188b3", "sha256": "5d2abafbb38fb3147b38a3d56dcc742c8c73497f5e68d7f94c7b077e369f1433" }, "downloads": -1, "filename": "ngta-4.2.9-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "586a6f00a17ab7088a97b5e459b188b3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6.5", "size": 397418, "upload_time": "2019-10-14T09:35:04", "url": "https://files.pythonhosted.org/packages/57/a8/f9931003fd558a149440e345dfa70287bf4a0bc2898b5f24979358b186d0/ngta-4.2.9-py2.py3-none-any.whl" } ] }