[
  {
    "path": ".all-contributorsrc",
    "content": "{\n  \"files\": [\n    \"README.md\"\n  ],\n  \"imageSize\": 100,\n  \"commit\": false,\n  \"commitConvention\": \"angular\",\n  \"contributors\": [\n    {\n      \"login\": \"Minitour\",\n      \"name\": \"Antonio Zaitoun\",\n      \"avatar_url\": \"https://avatars.githubusercontent.com/u/17438617?v=4\",\n      \"profile\": \"https://www.linkedin.com/in/antonio-zaitoun/\",\n      \"contributions\": [\n        \"doc\"\n      ]\n    },\n    {\n      \"login\": \"eldaduzman\",\n      \"name\": \"Eldad Uzman\",\n      \"avatar_url\": \"https://avatars.githubusercontent.com/u/55621402?v=4\",\n      \"profile\": \"https://medium.com/@eldadu1985\",\n      \"contributions\": [\n        \"infra\",\n        \"test\",\n        \"code\"\n      ]\n    }\n  ],\n  \"contributorsPerLine\": 7,\n  \"skipCi\": true,\n  \"repoType\": \"github\",\n  \"repoHost\": \"https://github.com\",\n  \"projectName\": \"pymeter\",\n  \"projectOwner\": \"eldaduzman\"\n}\n"
  },
  {
    "path": ".github/dependabot.yml",
    "content": "# To get started with Dependabot version updates, you'll need to specify which\n# package ecosystems to update and where the package manifests are located.\n# Please see the documentation for all configuration options:\n# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates\n\nversion: 2\nupdates:\n  - package-ecosystem: \"\" # See documentation for possible values\n    directory: \"/\" # Location of package manifests\n    schedule:\n      interval: \"weekly\"\n  - package-ecosystem: \"\" # See documentation for possible values\n    directory: \"/java-dependencies\" # Location of package manifests\n    schedule:\n      interval: \"weekly\"\n"
  },
  {
    "path": ".github/workflows/build.yaml",
    "content": "name: run tests\non: [pull_request]\n\n\njobs:\n  test:\n    runs-on: ${{ matrix.os }}\n    strategy:\n      matrix:\n        os: [ubuntu-latest]\n        python_version: [3.8, 3.9, 3.10.x, 3.11.x]\n        java_version: [8,11]\n        java_distribution: [temurin]\n\n    steps:\n      - uses: actions/checkout@v3\n      - uses: actions/setup-java@v2\n        with:\n          distribution: ${{ matrix.java_distribution }}\n          java-version: ${{ matrix.java_version }}\n      - name: Setup Python ${{ matrix.python_version }}\n        uses: actions/setup-python@v3\n        with:\n          python-version: ${{ matrix.python_version }}\n      - name: Run maven tests\n        run: mvn dependency:copy-dependencies -f java-dependencies/pom.xml\n      - name: install python dependencies\n        run: |\n          python -m pip install --upgrade pip\n          pip install tox tox-gh-actions poetry==1.5.1\n      - name: make jars dir\n        run: mkdir -p src/pymeter/resources/jars\n      - name: copy jars\n        run: cp java-dependencies/target/dependency/* src/pymeter/resources/jars\n      - name: display jars\n        run: ls -l src/pymeter/resources/jars\n      - name: test with tox\n        run: tox\n"
  },
  {
    "path": ".github/workflows/publish-pypi.yaml",
    "content": "# This workflow will upload a Python Package using Twine when a release is created\n# For more information see: https://help.github.com/en/actions/language-and-framework-guides/using-python-with-github-actions#publishing-to-package-registries\n\n# This workflow uses actions that are not certified by GitHub.\n# They are provided by a third-party and are governed by\n# separate terms of service, privacy policy, and support\n# documentation.\n\nname: Upload Python Package\n\non:\n  release:\n    types: [published]\n\npermissions:\n  contents: read\n\njobs:\n  deploy:\n\n    runs-on: ubuntu-latest\n\n    steps:\n    - uses: actions/checkout@v3\n    - uses: actions/setup-java@v2\n      with:\n        distribution: temurin\n        java-version: 11\n    - name: Create jar\n      run: |\n        mvn dependency:copy-dependencies -f java-dependencies/pom.xml\n        mkdir -p src/pymeter/resources/jars\n        cp java-dependencies/target/dependency/* src/pymeter/resources/jars\n        ls -l src/pymeter/resources/jars\n\n    - name: Set up Python\n      uses: actions/setup-python@v3\n      with:\n        python-version: '3.8'\n    - name: Install dependencies\n      run: |\n        python -m pip install --upgrade pip\n        pip install poetry==1.5.1\n        poetry install --only-root\n    - name: Build package\n      run: poetry build -f sdist\n    - name: Publish package\n      uses: pypa/gh-action-pypi-publish@27b31702a0e7fc50959f5ad993c78deac1bdfc29\n      with:\n        user: __token__\n        password: ${{ secrets.PYPI_API_TOKEN }}"
  },
  {
    "path": ".gitignore",
    "content": "# File created using '.gitignore Generator' for Visual Studio Code: https://bit.ly/vscode-gig\n# Created by https://www.toptal.com/developers/gitignore/api/windows,visualstudiocode,java,pycharm+all,python\n# Edit at https://www.toptal.com/developers/gitignore?templates=windows,visualstudiocode,java,pycharm+all,python\n\n### Java ###\n# Compiled class file\n*.class\n\n# Log file\n*.log\n\n# BlueJ files\n*.ctxt\n\n# Mobile Tools for Java (J2ME)\n.mtj.tmp/\n\n# Package Files #\n*.jar\n*.war\n*.nar\n*.ear\n*.zip\n*.tar.gz\n*.rar\n\n# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml\nhs_err_pid*\nreplay_pid*\n\n### PyCharm+all ###\n# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider\n# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839\n\n# User-specific stuff\n.idea/**/workspace.xml\n.idea/**/tasks.xml\n.idea/**/usage.statistics.xml\n.idea/**/dictionaries\n.idea/**/shelf\n\n# AWS User-specific\n.idea/**/aws.xml\n\n# Generated files\n.idea/**/contentModel.xml\n\n# Sensitive or high-churn files\n.idea/**/dataSources/\n.idea/**/dataSources.ids\n.idea/**/dataSources.local.xml\n.idea/**/sqlDataSources.xml\n.idea/**/dynamic.xml\n.idea/**/uiDesigner.xml\n.idea/**/dbnavigator.xml\n\n# Gradle\n.idea/**/gradle.xml\n.idea/**/libraries\n\n# Gradle and Maven with auto-import\n# When using Gradle or Maven with auto-import, you should exclude module files,\n# since they will be recreated, and may cause churn.  Uncomment if using\n# auto-import.\n# .idea/artifacts\n# .idea/compiler.xml\n# .idea/jarRepositories.xml\n# .idea/modules.xml\n# .idea/*.iml\n# .idea/modules\n# *.iml\n# *.ipr\n\n# CMake\ncmake-build-*/\n\n# Mongo Explorer plugin\n.idea/**/mongoSettings.xml\n\n# File-based project format\n*.iws\n\n# IntelliJ\nout/\n\n# mpeltonen/sbt-idea plugin\n.idea_modules/\n\n# JIRA plugin\natlassian-ide-plugin.xml\n\n# Cursive Clojure plugin\n.idea/replstate.xml\n\n# SonarLint plugin\n.idea/sonarlint/\n\n# Crashlytics plugin (for Android Studio and IntelliJ)\ncom_crashlytics_export_strings.xml\ncrashlytics.properties\ncrashlytics-build.properties\nfabric.properties\n\n# Editor-based Rest Client\n.idea/httpRequests\n\n# Android studio 3.1+ serialized cache file\n.idea/caches/build_file_checksums.ser\n\n### PyCharm+all Patch ###\n# Ignore everything but code style settings and run configurations\n# that are supposed to be shared within teams.\n\n.idea/*\n\n!.idea/codeStyles\n!.idea/runConfigurations\n\n### Python ###\n# Byte-compiled / optimized / DLL files\n__pycache__/\n*.py[cod]\n*$py.class\n\n# C extensions\n*.so\n\n# Distribution / packaging\n.Python\nbuild/\ndevelop-eggs/\ndist/\ndownloads/\neggs/\n.eggs/\nlib/\nlib64/\nparts/\nsdist/\nvar/\nwheels/\nshare/python-wheels/\n*.egg-info/\n.installed.cfg\n*.egg\nMANIFEST\n\n# PyInstaller\n#  Usually these files are written by a python script from a template\n#  before PyInstaller builds the exe, so as to inject date/other infos into it.\n*.manifest\n*.spec\n\n# Installer logs\npip-log.txt\npip-delete-this-directory.txt\n\n# Unit test / coverage reports\nhtmlcov/\n.tox/\n.nox/\n.coverage\n.coverage.*\n.cache\nnosetests.xml\ncoverage.xml\n*.cover\n*.py,cover\n.hypothesis/\n.pytest_cache/\ncover/\n\n# Translations\n*.mo\n*.pot\n\n# Django stuff:\nlocal_settings.py\ndb.sqlite3\ndb.sqlite3-journal\n\n# Flask stuff:\ninstance/\n.webassets-cache\n\n# Scrapy stuff:\n.scrapy\n\n# Sphinx documentation\ndocs/_build/\n\n# PyBuilder\n.pybuilder/\ntarget/\n\n# Jupyter Notebook\n.ipynb_checkpoints\n\n# IPython\nprofile_default/\nipython_config.py\n\n# pyenv\n#   For a library or package, you might want to ignore these files since the code is\n#   intended to run in multiple environments; otherwise, check them in:\n# .python-version\n\n# pipenv\n#   According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.\n#   However, in case of collaboration, if having platform-specific dependencies or dependencies\n#   having no cross-platform support, pipenv may install dependencies that don't work, or not\n#   install all needed dependencies.\n#Pipfile.lock\n\n# poetry\n#   Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.\n#   This is especially recommended for binary packages to ensure reproducibility, and is more\n#   commonly ignored for libraries.\n#   https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control\n#poetry.lock\n\n# pdm\n#   Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.\n#pdm.lock\n#   pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it\n#   in version control.\n#   https://pdm.fming.dev/#use-with-ide\n.pdm.toml\n\n# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm\n__pypackages__/\n\n# Celery stuff\ncelerybeat-schedule\ncelerybeat.pid\n\n# SageMath parsed files\n*.sage.py\n\n# Environments\n.env\n.venv\nenv/\nvenv/\nENV/\nenv.bak/\nvenv.bak/\n\n# Spyder project settings\n.spyderproject\n.spyproject\n\n# Rope project settings\n.ropeproject\n\n# mkdocs documentation\n/site\n\n# mypy\n.mypy_cache/\n.dmypy.json\ndmypy.json\n\n# Pyre type checker\n.pyre/\n\n# pytype static type analyzer\n.pytype/\n\n# Cython debug symbols\ncython_debug/\n\n# PyCharm\n#  JetBrains specific template is maintained in a separate JetBrains.gitignore that can\n#  be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore\n#  and can be added to the global gitignore or merged into this file.  For a more nuclear\n#  option (not recommended) you can uncomment the following to ignore the entire idea folder.\n#.idea/\n\n### VisualStudioCode ###\n.vscode/*\n!.vscode/settings.json\n!.vscode/tasks.json\n!.vscode/launch.json\n!.vscode/extensions.json\n!.vscode/*.code-snippets\n\n# Local History for Visual Studio Code\n.history/\n\n# Built Visual Studio Code Extensions\n*.vsix\n\n### VisualStudioCode Patch ###\n# Ignore all local history of files\n.history\n.ionide\n\n# Support for Project snippet scope\n.vscode/*.code-snippets\n\n# Ignore code-workspaces\n*.code-workspace\n\n### Windows ###\n# Windows thumbnail cache files\nThumbs.db\nThumbs.db:encryptable\nehthumbs.db\nehthumbs_vista.db\n\n# Dump file\n*.stackdump\n\n# Folder config file\n[Dd]esktop.ini\n\n# Recycle Bin used on file shares\n$RECYCLE.BIN/\n\n# Windows Installer files\n*.cab\n*.msi\n*.msix\n*.msm\n*.msp\n\n# Windows shortcuts\n*.lnk\n\n# End of https://www.toptal.com/developers/gitignore/api/windows,visualstudiocode,java,pycharm+all,python\n\n# Custom rules (everything added below won't be overriden by 'Generate .gitignore File' if you use 'Update' option)\n\nhtml-report-*/\n.vscode/\noutput/\n*.sqlite\nplayground/\n"
  },
  {
    "path": ".pylintrc",
    "content": "[MASTER]\ninit-hook='import sys; sys.path.append(\".\"); sys.path.append(\"src\")'\n[FORMAT]\nmax-line-length=150"
  },
  {
    "path": ".readthedocs.yaml",
    "content": "version: 2\n\nbuild:\n  os: ubuntu-20.04\n  tools:\n    python: \"3.8\"\n  apt_packages:\n    - default-jdk\n    - maven\n  jobs:\n    pre_install:\n        - pwd\n        - ls -lstr\n        - ls -lstr src\n        - ls -lstr src/pymeter\n        - mvn dependency:copy-dependencies -f java-dependencies/pom.xml\n        - mkdir -p src/pymeter/resources/jars\n        - cp java-dependencies/target/dependency/* src/pymeter/resources/jars\n        - ls -l src/pymeter/resources/jars\n\nsphinx:\n  configuration: docs/user-guide/source/conf.py\n\n# Optionally build your docs in additional formats such as PDF and ePub\nformats: all\n\npython:\n  install:\n    - requirements: docs/requirements.txt\n    - method: pip\n      path: .\n"
  },
  {
    "path": "CODE_OF_CONDUCT.md",
    "content": "# Contributor Code of Conduct\n\nTrust, respect, collaboration and transparency are core values we believe should live and breathe within our projects. Our community welcomes participants from around the world with different experiences, unique perspectives, and great ideas to share.\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.\n\n## Our Standards\n\nExamples of behavior that contributes to creating a positive environment include:\n\n- Using welcoming and inclusive language\n- Being respectful of differing viewpoints and experiences\n- Gracefully accepting constructive criticism\n- Attempting collaboration before conflict\n- Focusing on what is best for the community\n- Showing empathy towards other community members\n\nExamples of unacceptable behavior by participants include:\n\n- Violence, threats of violence, or inciting others to commit self-harm\n- The use of sexualized language or imagery and unwelcome sexual attention or advances\n- Trolling, intentionally spreading misinformation, insulting/derogatory comments, and personal or political attacks\n- Public or private harassment\n- Publishing others' private information, such as a physical or electronic address, without explicit permission\n- Abuse of the reporting process to intentionally harass or exclude others\n- Advocating for, or encouraging, any of the above behavior\n- Other conduct which could reasonably be considered inappropriate in a professional setting\n\n## Our Responsibilities\n\nProject maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.\n\nProject maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.\n\n## Scope\n\nThis Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.\n\n## Enforcement\n\nInstances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting one of the maintainers privately\n1. Eldad Uzman - eldadu1985@gmail.com\n\n\nAll complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident.\n\nProject maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.\n\nIf you are unsure whether an incident is a violation, or whether the space where the incident took place is covered by our Code of Conduct, **we encourage you to still report it**. We would prefer to have a few extra reports where we decide to take no action, than to leave an incident go unnoticed and unresolved that may result in an individual or group to feel like they can no longer participate in the community. Reports deemed as not a violation will also allow us to improve our Code of Conduct and processes surrounding it. If you witness a dangerous situation or someone in distress, we encourage you to report even if you are only an observer.\n\n## Attribution\n\nThis Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org/), [version 1.4](https://www.contributor-covenant.org/version/1/4/code-of-conduct.html)."
  },
  {
    "path": "LICENSE",
    "content": "                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "README.md",
    "content": "# pymeter\n<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->\n[![All Contributors](https://img.shields.io/badge/all_contributors-2-orange.svg?style=flat-square)](#contributors-)\n<!-- ALL-CONTRIBUTORS-BADGE:END -->\nSimple JMeter performance tests API for python\n\n#### Powered by [JMeter-DSL](https://abstracta.github.io/jmeter-java-dsl/) and [pyjnius](https://github.com/kivy/pyjnius) \n\n\n[![Version](https://img.shields.io/pypi/v/pymeter.svg)](https://pypi.python.org/pypi/pymeter)\n![](https://raw.githubusercontent.com/eldaduzman/pymeter/main/docs/badges/coverage-badge.svg)\n![](https://raw.githubusercontent.com/eldaduzman/pymeter/main/docs/badges/pylint.svg)\n![](https://raw.githubusercontent.com/eldaduzman/pymeter/main/docs/badges/mutscore.svg)\n[![Generic badge](https://img.shields.io/badge/python-3.8|3.9|3.10|3.11-blue.svg)](https://python.org/)\n[![Generic badge](https://img.shields.io/badge/JMeterDsl-1.23.3-blue.svg)](https://abstracta.github.io/jmeter-java-dsl/)\n[![Documentation Status](https://readthedocs.org/projects/pymeter/badge/?version=latest)](https://pymeter.readthedocs.io/en/latest/?badge=latest)\n\n\n[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n\n\n<br/>\n\n<div style=\"text-align:center\"><img src=\"https://raw.githubusercontent.com/eldaduzman/pymeter/main/docs/user-guide/source/_static/pymeter-logo-full.jpg\" width=\"70%\" /></div>\n\n<br/>\n<br/>\n<br/>\n<br/>\n\n\n\n## Load testing with JMeter using python!\n\n\nRead the documentation [here](https://pymeter.readthedocs.io/en/latest/) <br/>\nRead about performance benchmarking [here](https://github.com/eldaduzman/pymeter-benchmark)\n\n**JMeter** is one of the most popular and long standing load testing tools. <br/>\nThe original implementation is a gui based tool to script load test scenarios in a hierarchical structure, however this came with limitations and shortcomings.\n\nFor once, upgrading JMeter versions is painful, as it involved manually downloading and deploying executable files.\nThis became very clear when [log4j](https://en.wikipedia.org/wiki/Log4Shell) vulnerability was discovered, and software developers needed to instantly upgrade their log4j versions.\nWith JMeter, this was even more painful without a proper package management system such as maven or gradle.\n\nOther limitations include difficulty to share code between different projects, using source control management tools such as git or svn.\nIt is quite difficult to extend JMeter and it requires a GUI editor which means to use additional development environment instead of using a single IDE for all needs.\n\nThe awesome folks at [abstracta](https://abstracta.us/) have put up an amazing amount of work to deliver [JMeter-DSL](https://abstracta.github.io/jmeter-java-dsl/), which allows developers to use plain Java to script their load test scenarios, and pretty much solve all the pain mentioned above.\n\n`pymeter` project is aimed to capitalize on the success of JMeter-DSL and extend it to the python community!\nUsing [pyjnius](https://github.com/kivy/pyjnius) developed by Kivy, it is possible to bridge between JMeter-DSLs classes written in Java and reflect them into python's runtime environment without spawning up java runtime and relying on costly inter-process communication.\n\n\n### Pre-requisites:\n1. python version 3.9 or higher - [download](https://www.python.org/)\n2. Java version 8 or 11 - [download](https://adoptium.net/temurin/releases)\n3. JAVA_HOME environment variable set - [read](https://confluence.atlassian.com/doc/setting-the-java_home-variable-in-windows-8895.html)\n\n### Install pymeter\n```bash\n>>> pip install pymeter\n```\n\n### simple pymeter script:\n\n```python\n\"\"\"unittest module\"\"\"\nfrom unittest import TestCase, main\n\nfrom pymeter.api.config import TestPlan, ThreadGroupWithRampUpAndHold\nfrom pymeter.api.postprocessors import JsonExtractor\nfrom pymeter.api.reporters import HtmlReporter\nfrom pymeter.api.samplers import DummySampler, HttpSampler\nfrom pymeter.api.timers import UniformRandomTimer\n\n\nclass TestTestPlanClass(TestCase):\n    def test_1(self):\n        json_extractor = JsonExtractor(\"variable\", \"args.var\")\n        timer = UniformRandomTimer(1000, 2000)\n        http_sampler = HttpSampler(\n            \"Echo\",\n            \"https://postman-echo.com/get?var=${__Random(0,10)}\",\n            timer,\n            json_extractor,\n        )\n        dummy_sampler = DummySampler(\"dummy ${variable}\", \"hi dummy\")\n        tg = ThreadGroupWithRampUpAndHold(\n            10, 1, 60, http_sampler, dummy_sampler, name=\"Some Name\"\n        )\n        html_reporter = HtmlReporter()\n        tp = TestPlan(tg, html_reporter)\n        stats = tp.run()\n        print(\n            f\"duration= {stats.duration_milliseconds}\",\n            f\"mean= {stats.sample_time_mean_milliseconds}\",\n            f\"min= {stats.sample_time_min_milliseconds}\",\n            f\"median= {stats.sample_time_median_milliseconds}\",\n            f\"90p= {stats.sample_time_90_percentile_milliseconds}\",\n            f\"95p= {stats.sample_time_95_percentile_milliseconds}\",\n            f\"99p= {stats.sample_time_99_percentile_milliseconds}\",\n            f\"max= {stats.sample_time_max_milliseconds}\",\n            sep=\"\\t\",\n        )\n        self.assertLess(stats.sample_time_99_percentile_milliseconds, 2000)\n\n\nif __name__ == \"__main__\":\n    main()\n\n```\n\nIn this example, the standard python unittest was used to execute the test code, however pymeter is framework agnostic and can be used by any other testing framework\n\n## File Structure\n\n```\n|   .coverage\n|   .gitignore\n|   .pylintrc\n|   cosmic-ray-config.ini\n|   LICENSE\n|   make.bat\n|   Makefile\n|   poetry.lock\n|   pyproject.toml\n|   README.md\n|   tox.ini               \n+---source\n|   |   conf.py\n|   |   index.rst\n|   |   \n|   +---_static\n|   \\---_templates\n+---src\n|   \\---pymeter\n|       |   __init__.py\n|       |   \n|       +---api\n|       |   |   config.py\n|       |   |   postprocessors.py\n|       |   |   reporters.py\n|       |   |   samplers.py\n|       |   |   timers.py\n|       |   |   __init__.py\n|       |   |   \n+---utests\n|   |   test_postprocessors.py\n|   |   test_reporter.py\n|   |   test_sampler.py\n|   |   test_test_plan.py\n|   |   test_thread_group.py\n|   |   test_timers.py\n|   |   __init__.py\n|   |   \n```\n## Code styling\n### `black` used for auto-formatting code [read](https://pypi.org/project/black/),\n### `pylint` used for code linting and pep8 compliance [read](https://pypi.org/project/pylint/),\n### `mypy` used for type hinting [read](https://pypi.org/project/mypy/),\n### `perflint` pylint extension for performance linting [read](https://betterprogramming.pub/use-perflint-a-performance-linter-for-python-eae8e54f1e99)\n### `cosmic-ray` Python tool for mutation testing [read](https://python.plainenglish.io/python-mutation-testing-with-cosmic-ray-4b78eb9e0676)\n\n## Contributors\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\"><a href=\"https://www.linkedin.com/in/antonio-zaitoun/\"><img src=\"https://avatars.githubusercontent.com/u/17438617?v=4?s=100\" width=\"100px;\" alt=\"Antonio Zaitoun\"/><br /><sub><b>Antonio Zaitoun</b></sub></a><br /><a href=\"https://github.com/eldaduzman/pymeter/commits?author=Minitour\" title=\"Documentation\">📖</a></td>\n      <td align=\"center\"><a href=\"https://medium.com/@eldadu1985\"><img src=\"https://avatars.githubusercontent.com/u/55621402?v=4?s=100\" width=\"100px;\" alt=\"Eldad Uzman\"/><br /><sub><b>Eldad Uzman</b></sub></a><br /><a href=\"#infra-eldaduzman\" title=\"Infrastructure (Hosting, Build-Tools, etc)\">🚇</a> <a href=\"https://github.com/eldaduzman/pymeter/commits?author=eldaduzman\" title=\"Tests\">⚠️</a> <a href=\"https://github.com/eldaduzman/pymeter/commits?author=eldaduzman\" title=\"Code\">💻</a></td>\n    </tr>\n  </tbody>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\n## links\n1. [JMeter Dsl](https://abstracta.github.io/jmeter-java-dsl/)\n2. [pyjnius](https://github.com/kivy/pyjnius)\n"
  },
  {
    "path": "cosmic-ray-config.ini",
    "content": "[cosmic-ray]\nmodule-path = \"src\\\\pymeter\"\ntimeout = 200.0\nexcluded-modules = []\ntest-command = \"python -m unittest discover\"\n\n[cosmic-ray.distributor]\nname = \"local\"\n"
  },
  {
    "path": "docs/Mutation-Testing/01102022.html",
    "content": "<!DOCTYPE html><html lang=\"en\"><head><meta charset=\"utf-8\" /><meta name=\"viewport\" content=\"width=device-width, initial-scale=1, shrink-to-fit=no\" /><link rel=\"stylesheet\" href=\"https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css\" integrity=\"sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T\" crossorigin=\"anonymous\" /><title>Cosmic Ray Report</title></head><body><div class=\"container\"><h1><p class=\"text-dark\">Cosmic Ray Report</p></h1></div><div class=\"container\"><div class=\"mb-1\" id=\"summary_info___accordion\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#summary_info___collapse_1\" aria-expanded=\"true\" aria-controls=\"summary_info___collapse_1\" href=\"#\"><div class=\"card-header\" id=\"summary_info___heading_1\"><button class=\"btn btn-outline-dark\"><h4 class=\"m-0\">Summary info</h4></button></div></a><div aria-labelledby=\"summary_info___heading_1\" data-parent=\"#summary_info___accordion\" class=\"collapse show\" id=\"summary_info___collapse_1\"><div class=\"card-body\"><p>Date time: 01/10/2022 01:14:54</p><p>Total jobs: 35</p><p>Complete: 35 (100.00%)</p><p>Surviving mutants: 0 (0.00%)</p></div></div></div></div><div class=\"mb-1\" id=\"job_list___accordion\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___collapse_1\" aria-expanded=\"false\" aria-controls=\"job_list___collapse_1\" href=\"#\"><div class=\"card-header\" id=\"job_list___heading_1\"><button class=\"btn btn-outline-dark\"><h4 class=\"m-0\">Job list</h4></button></div></a><div aria-labelledby=\"job_list___heading_1\" data-parent=\"#job_list___accordion\" class=\"collapse\" id=\"job_list___collapse_1\"><div class=\"card-body\"><div class=\"text-right mb-1\"><div class=\"mx-1\" id=\"job_item_expand_all\"><a href=\"#\" onclick=\"$('div.job_list___sub_multi_collapse').collapse('show');\"><button class=\"btn btn-outline-dark\"><span>Expand All</span></button></a></div><div class=\"mx-1\" id=\"job_item_collapse_all\"><a href=\"#\" onclick=\"$('div.job_list___sub_multi_collapse').collapse('hide');\"><button class=\"btn btn-outline-dark\"><span>Collapse All</span></button></a></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_1\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_1_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_1_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_1_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">1 : Job ID dbb1d4476afa4b9a8ced99ea4ce0cb18</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_1_1\" data-parent=\"#job_list___sub_accordion_1\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_1_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\__init__.py&amp;line=242\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\__init__.py, start pos: (242, 11), end pos: (242, 14)</button></a></pre><pre>operator: core/ReplaceUnaryOperator_Delete_Not, occurrence: 0</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\__init__.py\r\n+++ bsrc\\pymeter\\api\\__init__.py\r\n@@ -239,7 +239,7 @@\r\n     @property\r\n     def java_wrapped_element(self):\r\n         \"\"\"retrieves the java element wrapped in the python object by class name\"\"\"\r\n-        if not self.__class__.wrapped_instance_name:\r\n+        if  self.__class__.wrapped_instance_name:\r\n             self.__class__.wrapped_instance_name = BaseJMeterClass.pattern.sub(\r\n                 \"_\", self.__class__.__name__\r\n             ).lower()</pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">EEEEE..EEE.EEE.EEEEEEE.EE\r\r\n======================================================================\r\r\nERROR: test_http_sampler (utests.test_postprocessors.TestSampler)\r\r\nsend request to postman echo\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_postprocessors.py\", line 17, in test_http_sampler\r\r\n    http_sampler = HttpSampler(\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 100, in __init__\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 100, in &lt;listcomp&gt;\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'JsonExtractor' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_postprocessor_on_thread_group (utests.test_postprocessors.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_postprocessors.py\", line 41, in test_postprocessor_on_thread_group\r\r\n    tg1 = ThreadGroupSimple(1, 1, dummy_sampler, json_extractor)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 234, in __init__\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 234, in &lt;listcomp&gt;\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'DummySampler' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_sampler (utests.test_reporter.TestReporter)\r\r\ncreate an HTML report\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_reporter.py\", line 17, in test_http_sampler\r\r\n    tg = ThreadGroupWithRampUpAndHold(2, 1, 2, http_sampler, name=\"Some Name\")\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 262, in __init__\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 262, in &lt;listcomp&gt;\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'HttpSampler' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_2_headers (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 90, in test_http_2_headers\r\r\n    .header(\"key1\", \"val1\")\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 148, in header\r\r\n    self._http_sampler_instance = self.java_wrapped_element.header(key, value)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'HttpSampler' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_duplicated_header (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 105, in test_http_duplicated_header\r\r\n    .header(\"key1\", \"val1\")\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 148, in header\r\r\n    self._http_sampler_instance = self.java_wrapped_element.header(key, value)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'HttpSampler' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_sampler (utests.test_sampler.TestSampler)\r\r\nsend request to postman echo\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 15, in test_http_sampler\r\r\n    tg1 = ThreadGroupSimple(1, 1, http_sampler)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 234, in __init__\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 234, in &lt;listcomp&gt;\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'HttpSampler' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_valid_header (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 77, in test_http_valid_header\r\r\n    ).header(\"key1\", \"val1\")\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 148, in header\r\r\n    self._http_sampler_instance = self.java_wrapped_element.header(key, value)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'HttpSampler' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_post_http_sampler_dict_input (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 28, in test_post_http_sampler_dict_input\r\r\n    ).post({\"var1\": 1}, ContentType.APPLICATION_JSON)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 126, in post\r\r\n    self._http_sampler_instance = self.java_wrapped_element.post(\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'HttpSampler' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_post_http_sampler_list_input (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 39, in test_post_http_sampler_list_input\r\r\n    ).post([1, 2, 3, 4], ContentType.APPLICATION_JSON)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 126, in post\r\r\n    self._http_sampler_instance = self.java_wrapped_element.post(\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'HttpSampler' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_post_http_sampler_str_input (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 50, in test_post_http_sampler_str_input\r\r\n    ).post('{\"name\": \"John Doe\"}', ContentType.APPLICATION_JSON)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 126, in post\r\r\n    self._http_sampler_instance = self.java_wrapped_element.post(\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'HttpSampler' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_empty_test_plan (utests.test_test_plan.TestTestPlanClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 24, in test_creation_of_empty_test_plan\r\r\n    python_test_plan_object.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'TestPlan' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_test_plan_with_valid_children (utests.test_test_plan.TestTestPlanClass)\r\r\nWhen children are passed through,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 33, in test_creation_of_test_plan_with_valid_children\r\r\n    test_plan = TestPlan(tg1, tg2)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 156, in __init__\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 156, in &lt;listcomp&gt;\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'ThreadGroupWithRampUpAndHold' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_run_empty_flow (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 90, in test_run_empty_flow\r\r\n    test_plan = TestPlan(tg1)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 156, in __init__\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 156, in &lt;listcomp&gt;\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'ThreadGroupWithRampUpAndHold' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_run_positive_flow (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 56, in test_run_positive_flow\r\r\n    tg1 = ThreadGroupWithRampUpAndHold(30, 1, 20, http_sampler)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 262, in __init__\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 262, in &lt;listcomp&gt;\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'HttpSampler' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_run_validate_order (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 99, in test_run_validate_order\r\r\n    tg_setup = SetupThreadGroup(dummy_sampler_for_setup)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 196, in __init__\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 196, in &lt;listcomp&gt;\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'DummySampler' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_empty_setup_thread_group (utests.test_thread_group.TestThreadGroupClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 24, in test_creation_of_empty_setup_thread_group\r\r\n    python_thread_group_object.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'SetupThreadGroup' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_empty_teardown_thread_group (utests.test_thread_group.TestThreadGroupClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 32, in test_creation_of_empty_teardown_thread_group\r\r\n    python_thread_group_object.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'TeardownThreadGroup' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_empty_thread_group (utests.test_thread_group.TestThreadGroupClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 16, in test_creation_of_empty_thread_group\r\r\n    python_thread_group_object.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'ThreadGroupWithRampUpAndHold' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_thread_group_with_valid_children (utests.test_thread_group.TestThreadGroupClass)\r\r\nWhen children are passed through,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 40, in test_creation_of_thread_group_with_valid_children\r\r\n    python_thread_group_object = ThreadGroupWithRampUpAndHold(1, 1, 1, http_sampler)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 262, in __init__\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 262, in &lt;listcomp&gt;\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'HttpSampler' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_uniform_random_timer (utests.test_timers.TestTimer)\r\r\nWhen the minimal time is 5000 milliseconds,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_timers.py\", line 15, in test_uniform_random_timer\r\r\n    http_sampler = HttpSampler(\"Echo\", \"https://postman-echo.com/get?var=1\", timer)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 100, in __init__\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 100, in &lt;listcomp&gt;\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'UniformRandomTimer' object has no attribute '_None_instance'\r\r\n\r\r\n----------------------------------------------------------------------\r\r\nRan 25 tests in 0.845s\r\r\n\r\r\nFAILED (errors=20)\r\r\n</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_2\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_2_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_2_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_2_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">2 : Job ID 13d68ad35f9d4c0abcc03ccdfee230b7</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_2_1\" data-parent=\"#job_list___sub_accordion_2\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_2_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\__init__.py&amp;line=242\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\__init__.py, start pos: (242, 11), end pos: (242, 51)</button></a></pre><pre>operator: core/AddNot, occurrence: 0</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\__init__.py\r\n+++ bsrc\\pymeter\\api\\__init__.py\r\n@@ -239,7 +239,7 @@\r\n     @property\r\n     def java_wrapped_element(self):\r\n         \"\"\"retrieves the java element wrapped in the python object by class name\"\"\"\r\n-        if not self.__class__.wrapped_instance_name:\r\n+        if not not self.__class__.wrapped_instance_name:\r\n             self.__class__.wrapped_instance_name = BaseJMeterClass.pattern.sub(\r\n                 \"_\", self.__class__.__name__\r\n             ).lower()</pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">EEEEE..EEE.EEE.EEEEEEE.EE\r\r\n======================================================================\r\r\nERROR: test_http_sampler (utests.test_postprocessors.TestSampler)\r\r\nsend request to postman echo\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_postprocessors.py\", line 17, in test_http_sampler\r\r\n    http_sampler = HttpSampler(\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 100, in __init__\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 100, in &lt;listcomp&gt;\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'JsonExtractor' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_postprocessor_on_thread_group (utests.test_postprocessors.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_postprocessors.py\", line 41, in test_postprocessor_on_thread_group\r\r\n    tg1 = ThreadGroupSimple(1, 1, dummy_sampler, json_extractor)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 234, in __init__\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 234, in &lt;listcomp&gt;\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'DummySampler' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_sampler (utests.test_reporter.TestReporter)\r\r\ncreate an HTML report\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_reporter.py\", line 17, in test_http_sampler\r\r\n    tg = ThreadGroupWithRampUpAndHold(2, 1, 2, http_sampler, name=\"Some Name\")\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 262, in __init__\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 262, in &lt;listcomp&gt;\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'HttpSampler' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_2_headers (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 90, in test_http_2_headers\r\r\n    .header(\"key1\", \"val1\")\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 148, in header\r\r\n    self._http_sampler_instance = self.java_wrapped_element.header(key, value)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'HttpSampler' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_duplicated_header (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 105, in test_http_duplicated_header\r\r\n    .header(\"key1\", \"val1\")\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 148, in header\r\r\n    self._http_sampler_instance = self.java_wrapped_element.header(key, value)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'HttpSampler' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_sampler (utests.test_sampler.TestSampler)\r\r\nsend request to postman echo\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 15, in test_http_sampler\r\r\n    tg1 = ThreadGroupSimple(1, 1, http_sampler)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 234, in __init__\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 234, in &lt;listcomp&gt;\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'HttpSampler' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_valid_header (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 77, in test_http_valid_header\r\r\n    ).header(\"key1\", \"val1\")\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 148, in header\r\r\n    self._http_sampler_instance = self.java_wrapped_element.header(key, value)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'HttpSampler' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_post_http_sampler_dict_input (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 28, in test_post_http_sampler_dict_input\r\r\n    ).post({\"var1\": 1}, ContentType.APPLICATION_JSON)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 126, in post\r\r\n    self._http_sampler_instance = self.java_wrapped_element.post(\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'HttpSampler' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_post_http_sampler_list_input (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 39, in test_post_http_sampler_list_input\r\r\n    ).post([1, 2, 3, 4], ContentType.APPLICATION_JSON)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 126, in post\r\r\n    self._http_sampler_instance = self.java_wrapped_element.post(\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'HttpSampler' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_post_http_sampler_str_input (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 50, in test_post_http_sampler_str_input\r\r\n    ).post('{\"name\": \"John Doe\"}', ContentType.APPLICATION_JSON)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 126, in post\r\r\n    self._http_sampler_instance = self.java_wrapped_element.post(\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'HttpSampler' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_empty_test_plan (utests.test_test_plan.TestTestPlanClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 24, in test_creation_of_empty_test_plan\r\r\n    python_test_plan_object.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'TestPlan' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_test_plan_with_valid_children (utests.test_test_plan.TestTestPlanClass)\r\r\nWhen children are passed through,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 33, in test_creation_of_test_plan_with_valid_children\r\r\n    test_plan = TestPlan(tg1, tg2)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 156, in __init__\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 156, in &lt;listcomp&gt;\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'ThreadGroupWithRampUpAndHold' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_run_empty_flow (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 90, in test_run_empty_flow\r\r\n    test_plan = TestPlan(tg1)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 156, in __init__\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 156, in &lt;listcomp&gt;\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'ThreadGroupWithRampUpAndHold' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_run_positive_flow (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 56, in test_run_positive_flow\r\r\n    tg1 = ThreadGroupWithRampUpAndHold(30, 1, 20, http_sampler)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 262, in __init__\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 262, in &lt;listcomp&gt;\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'HttpSampler' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_run_validate_order (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 99, in test_run_validate_order\r\r\n    tg_setup = SetupThreadGroup(dummy_sampler_for_setup)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 196, in __init__\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 196, in &lt;listcomp&gt;\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'DummySampler' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_empty_setup_thread_group (utests.test_thread_group.TestThreadGroupClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 24, in test_creation_of_empty_setup_thread_group\r\r\n    python_thread_group_object.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'SetupThreadGroup' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_empty_teardown_thread_group (utests.test_thread_group.TestThreadGroupClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 32, in test_creation_of_empty_teardown_thread_group\r\r\n    python_thread_group_object.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'TeardownThreadGroup' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_empty_thread_group (utests.test_thread_group.TestThreadGroupClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 16, in test_creation_of_empty_thread_group\r\r\n    python_thread_group_object.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'ThreadGroupWithRampUpAndHold' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_thread_group_with_valid_children (utests.test_thread_group.TestThreadGroupClass)\r\r\nWhen children are passed through,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 40, in test_creation_of_thread_group_with_valid_children\r\r\n    python_thread_group_object = ThreadGroupWithRampUpAndHold(1, 1, 1, http_sampler)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 262, in __init__\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 262, in &lt;listcomp&gt;\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'HttpSampler' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_uniform_random_timer (utests.test_timers.TestTimer)\r\r\nWhen the minimal time is 5000 milliseconds,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_timers.py\", line 15, in test_uniform_random_timer\r\r\n    http_sampler = HttpSampler(\"Echo\", \"https://postman-echo.com/get?var=1\", timer)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 100, in __init__\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 100, in &lt;listcomp&gt;\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'UniformRandomTimer' object has no attribute '_None_instance'\r\r\n\r\r\n----------------------------------------------------------------------\r\r\nRan 25 tests in 0.713s\r\r\n\r\r\nFAILED (errors=20)\r\r\n</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_3\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_3_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_3_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_3_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">3 : Job ID 6e8f41afd87e4b4fa6f6a53e5c8d26e0</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_3_1\" data-parent=\"#job_list___sub_accordion_3\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_3_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\__init__.py&amp;line=233\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\__init__.py, start pos: (233, 29), end pos: (233, 30)</button></a></pre><pre>operator: core/NumberReplacer, occurrence: 0</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\__init__.py\r\n+++ bsrc\\pymeter\\api\\__init__.py\r\n@@ -230,7 +230,7 @@\r\n \r\n         return (\r\n             str(type(self.java_wrapped_element))\r\n-            .split(\"class \")[1]\r\n+            .split(\"class \")[ 2]\r\n             .split(\"'jnius.reflect.\")[1]\r\n             .split(\"'\")[0]\r\n             .strip()</pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">Warning: Nashorn engine is planned to be removed from a future JDK release\r\r\nE00:42:54.214 [Thread Group 1-1] ERROR org.apache.jmeter.extractor.json.jmespath.JMESPathExtractor - Error processing JSON content in JSON JMESPath Extractor, message: Unrecognized token 'hi': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')\r\n at [Source: (String)\"hi dummy\"; line: 1, column: 3]\r\r\n =      1 in 00:00:00 =   20.4/s Avg:   407 Min:   407 Max:   407 Err:     0 (0.00%)\r\r\n.EEE.. +      1 in 00:00:01 =    1.5/s Avg:   619 Min:   619 Max:   619 Err:     0 (0.00%) Active: 1 Started: 1 Finished: 0\r\r\n =      1 in 00:00:01 =    1.5/s Avg:   619 Min:   619 Max:   619 Err:     0 (0.00%)\r\r\nEEE.EEE.E =      0 in 00:00:00 = ******/s Avg:     0 Min: 9223372036854775807 Max: -9223372036854775808 Err:     0 (0.00%)\r\r\n. +      1 in 00:00:01 =    1.6/s Avg:   588 Min:   588 Max:   588 Err:     0 (0.00%) Active: 18 Started: 18 Finished: 0\r\r\n +   3897 in 00:00:21 =  189.5/s Avg:   157 Min:   138 Max:   705 Err:     0 (0.00%) Active: 0 Started: 30 Finished: 30\r\r\n =   3898 in 00:00:21 =  183.9/s Avg:   158 Min:   138 Max:   705 Err:     0 (0.00%)\r\r\nE.EEE.E =      1 in 00:00:03 =    0.4/s Avg:   577 Min:   577 Max:   577 Err:     0 (0.00%)\r\r\nE\r\r\n======================================================================\r\r\nERROR: test_http_sampler (utests.test_postprocessors.TestSampler)\r\r\nsend request to postman echo\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_postprocessors.py\", line 27, in test_http_sampler\r\r\n    json_extractor.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\nIndexError: list index out of range\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_sampler (utests.test_reporter.TestReporter)\r\r\ncreate an HTML report\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_reporter.py\", line 23, in test_http_sampler\r\r\n    html_reporter.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\nIndexError: list index out of range\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_2_headers (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 94, in test_http_2_headers\r\r\n    http_sampler.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\nIndexError: list index out of range\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_duplicated_header (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 109, in test_http_duplicated_header\r\r\n    http_sampler.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\nIndexError: list index out of range\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_sampler (utests.test_sampler.TestSampler)\r\r\nsend request to postman echo\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 19, in test_http_sampler\r\r\n    http_sampler.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\nIndexError: list index out of range\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_valid_header (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 79, in test_http_valid_header\r\r\n    http_sampler.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\nIndexError: list index out of range\r\r\n\r\r\n======================================================================\r\r\nERROR: test_post_http_sampler_dict_input (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 30, in test_post_http_sampler_dict_input\r\r\n    http_sampler.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\nIndexError: list index out of range\r\r\n\r\r\n======================================================================\r\r\nERROR: test_post_http_sampler_list_input (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 41, in test_post_http_sampler_list_input\r\r\n    http_sampler.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\nIndexError: list index out of range\r\r\n\r\r\n======================================================================\r\r\nERROR: test_post_http_sampler_str_input (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 52, in test_post_http_sampler_str_input\r\r\n    http_sampler.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\nIndexError: list index out of range\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_empty_test_plan (utests.test_test_plan.TestTestPlanClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 24, in test_creation_of_empty_test_plan\r\r\n    python_test_plan_object.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\nIndexError: list index out of range\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_test_plan_with_valid_children (utests.test_test_plan.TestTestPlanClass)\r\r\nWhen children are passed through,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 35, in test_creation_of_test_plan_with_valid_children\r\r\n    test_plan.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\nIndexError: list index out of range\r\r\n\r\r\n======================================================================\r\r\nERROR: test_run_positive_flow (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 60, in test_run_positive_flow\r\r\n    test_plan.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\nIndexError: list index out of range\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_empty_setup_thread_group (utests.test_thread_group.TestThreadGroupClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 24, in test_creation_of_empty_setup_thread_group\r\r\n    python_thread_group_object.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\nIndexError: list index out of range\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_empty_teardown_thread_group (utests.test_thread_group.TestThreadGroupClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 32, in test_creation_of_empty_teardown_thread_group\r\r\n    python_thread_group_object.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\nIndexError: list index out of range\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_empty_thread_group (utests.test_thread_group.TestThreadGroupClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 16, in test_creation_of_empty_thread_group\r\r\n    python_thread_group_object.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\nIndexError: list index out of range\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_thread_group_with_valid_children (utests.test_thread_group.TestThreadGroupClass)\r\r\nWhen children are passed through,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 42, in test_creation_of_thread_group_with_valid_children\r\r\n    python_thread_group_object.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\nIndexError: list index out of range\r\r\n\r\r\n======================================================================\r\r\nERROR: test_uniform_random_timer (utests.test_timers.TestTimer)\r\r\nWhen the minimal time is 5000 milliseconds,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_timers.py\", line 20, in test_uniform_random_timer\r\r\n    timer.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\nIndexError: list index out of range\r\r\n\r\r\n----------------------------------------------------------------------\r\r\nRan 25 tests in 40.348s\r\r\n\r\r\nFAILED (errors=17)\r\r\n</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_4\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_4_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_4_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_4_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">4 : Job ID 16260ded5b3f414c8f412d49a76e6c7a</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_4_1\" data-parent=\"#job_list___sub_accordion_4\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_4_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\__init__.py&amp;line=233\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\__init__.py, start pos: (233, 29), end pos: (233, 30)</button></a></pre><pre>operator: core/NumberReplacer, occurrence: 1</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\__init__.py\r\n+++ bsrc\\pymeter\\api\\__init__.py\r\n@@ -230,7 +230,7 @@\r\n \r\n         return (\r\n             str(type(self.java_wrapped_element))\r\n-            .split(\"class \")[1]\r\n+            .split(\"class \")[ 0]\r\n             .split(\"'jnius.reflect.\")[1]\r\n             .split(\"'\")[0]\r\n             .strip()</pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">Warning: Nashorn engine is planned to be removed from a future JDK release\r\r\nE00:43:39.849 [Thread Group 1-1] ERROR org.apache.jmeter.extractor.json.jmespath.JMESPathExtractor - Error processing JSON content in JSON JMESPath Extractor, message: Unrecognized token 'hi': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')\r\n at [Source: (String)\"hi dummy\"; line: 1, column: 3]\r\r\n =      1 in 00:00:00 =   15.9/s Avg:    56 Min:    56 Max:    56 Err:     0 (0.00%)\r\r\n.EEE.. =      1 in 00:00:01 =    1.3/s Avg:   655 Min:   655 Max:   655 Err:     0 (0.00%)\r\r\nEEE.EEE.E =      0 in 00:00:00 = ******/s Avg:     0 Min: 9223372036854775807 Max: -9223372036854775808 Err:     0 (0.00%)\r\r\n. +   1587 in 00:00:09 =  168.6/s Avg:   165 Min:   140 Max:   677 Err:     0 (0.00%) Active: 30 Started: 30 Finished: 0\r\r\n +   2260 in 00:00:12 =  191.1/s Avg:   156 Min:   140 Max:   462 Err:     0 (0.00%) Active: 0 Started: 30 Finished: 30\r\r\n =   3847 in 00:00:21 =  181.1/s Avg:   160 Min:   140 Max:   677 Err:     0 (0.00%)\r\r\nE.EEE.E =      1 in 00:00:03 =    0.3/s Avg:   647 Min:   647 Max:   647 Err:     0 (0.00%)\r\r\nE\r\r\n======================================================================\r\r\nERROR: test_http_sampler (utests.test_postprocessors.TestSampler)\r\r\nsend request to postman echo\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_postprocessors.py\", line 27, in test_http_sampler\r\r\n    json_extractor.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\nIndexError: list index out of range\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_sampler (utests.test_reporter.TestReporter)\r\r\ncreate an HTML report\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_reporter.py\", line 23, in test_http_sampler\r\r\n    html_reporter.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\nIndexError: list index out of range\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_2_headers (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 94, in test_http_2_headers\r\r\n    http_sampler.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\nIndexError: list index out of range\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_duplicated_header (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 109, in test_http_duplicated_header\r\r\n    http_sampler.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\nIndexError: list index out of range\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_sampler (utests.test_sampler.TestSampler)\r\r\nsend request to postman echo\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 19, in test_http_sampler\r\r\n    http_sampler.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\nIndexError: list index out of range\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_valid_header (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 79, in test_http_valid_header\r\r\n    http_sampler.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\nIndexError: list index out of range\r\r\n\r\r\n======================================================================\r\r\nERROR: test_post_http_sampler_dict_input (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 30, in test_post_http_sampler_dict_input\r\r\n    http_sampler.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\nIndexError: list index out of range\r\r\n\r\r\n======================================================================\r\r\nERROR: test_post_http_sampler_list_input (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 41, in test_post_http_sampler_list_input\r\r\n    http_sampler.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\nIndexError: list index out of range\r\r\n\r\r\n======================================================================\r\r\nERROR: test_post_http_sampler_str_input (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 52, in test_post_http_sampler_str_input\r\r\n    http_sampler.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\nIndexError: list index out of range\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_empty_test_plan (utests.test_test_plan.TestTestPlanClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 24, in test_creation_of_empty_test_plan\r\r\n    python_test_plan_object.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\nIndexError: list index out of range\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_test_plan_with_valid_children (utests.test_test_plan.TestTestPlanClass)\r\r\nWhen children are passed through,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 35, in test_creation_of_test_plan_with_valid_children\r\r\n    test_plan.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\nIndexError: list index out of range\r\r\n\r\r\n======================================================================\r\r\nERROR: test_run_positive_flow (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 60, in test_run_positive_flow\r\r\n    test_plan.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\nIndexError: list index out of range\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_empty_setup_thread_group (utests.test_thread_group.TestThreadGroupClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 24, in test_creation_of_empty_setup_thread_group\r\r\n    python_thread_group_object.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\nIndexError: list index out of range\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_empty_teardown_thread_group (utests.test_thread_group.TestThreadGroupClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 32, in test_creation_of_empty_teardown_thread_group\r\r\n    python_thread_group_object.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\nIndexError: list index out of range\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_empty_thread_group (utests.test_thread_group.TestThreadGroupClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 16, in test_creation_of_empty_thread_group\r\r\n    python_thread_group_object.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\nIndexError: list index out of range\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_thread_group_with_valid_children (utests.test_thread_group.TestThreadGroupClass)\r\r\nWhen children are passed through,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 42, in test_creation_of_thread_group_with_valid_children\r\r\n    python_thread_group_object.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\nIndexError: list index out of range\r\r\n\r\r\n======================================================================\r\r\nERROR: test_uniform_random_timer (utests.test_timers.TestTimer)\r\r\nWhen the minimal time is 5000 milliseconds,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_timers.py\", line 20, in test_uniform_random_timer\r\r\n    timer.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\nIndexError: list index out of range\r\r\n\r\r\n----------------------------------------------------------------------\r\r\nRan 25 tests in 45.731s\r\r\n\r\r\nFAILED (errors=17)\r\r\n</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_5\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_5_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_5_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_5_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">5 : Job ID 26ca291af91e44628a1818f8cd814681</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_5_1\" data-parent=\"#job_list___sub_accordion_5\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_5_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\__init__.py&amp;line=234\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\__init__.py, start pos: (234, 38), end pos: (234, 39)</button></a></pre><pre>operator: core/NumberReplacer, occurrence: 2</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\__init__.py\r\n+++ bsrc\\pymeter\\api\\__init__.py\r\n@@ -231,7 +231,7 @@\r\n         return (\r\n             str(type(self.java_wrapped_element))\r\n             .split(\"class \")[1]\r\n-            .split(\"'jnius.reflect.\")[1]\r\n+            .split(\"'jnius.reflect.\")[ 2]\r\n             .split(\"'\")[0]\r\n             .strip()\r\n         )</pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">Warning: Nashorn engine is planned to be removed from a future JDK release\r\r\nE00:44:27.381 [Thread Group 1-1] ERROR org.apache.jmeter.extractor.json.jmespath.JMESPathExtractor - Error processing JSON content in JSON JMESPath Extractor, message: Unrecognized token 'hi': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')\r\n at [Source: (String)\"hi dummy\"; line: 1, column: 3]\r\r\n =      1 in 00:00:00 =   10.4/s Avg:   305 Min:   305 Max:   305 Err:     0 (0.00%)\r\r\n. +      8 in 00:00:01 =    5.7/s Avg:   258 Min:   144 Max:   608 Err:     0 (0.00%) Active: 2 Started: 2 Finished: 0\r\r\nEEE.. +      1 in 00:00:01 =    1.4/s Avg:   654 Min:   654 Max:   654 Err:     0 (0.00%) Active: 1 Started: 1 Finished: 0\r\r\n =      1 in 00:00:01 =    1.4/s Avg:   654 Min:   654 Max:   654 Err:     0 (0.00%)\r\r\nEEE.EEE.E =      0 in 00:00:00 = ******/s Avg:     0 Min: 9223372036854775807 Max: -9223372036854775808 Err:     0 (0.00%)\r\r\n. =   3800 in 00:00:21 =  179.2/s Avg:   162 Min:   140 Max:   684 Err:     0 (0.00%)\r\r\nE.EEE.E +      1 in 00:00:03 =    0.4/s Avg:   617 Min:   617 Max:   617 Err:     0 (0.00%) Active: 1 Started: 1 Finished: 0\r\r\n =      1 in 00:00:03 =    0.4/s Avg:   617 Min:   617 Max:   617 Err:     0 (0.00%)\r\r\nE\r\r\n======================================================================\r\r\nERROR: test_http_sampler (utests.test_postprocessors.TestSampler)\r\r\nsend request to postman echo\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_postprocessors.py\", line 27, in test_http_sampler\r\r\n    json_extractor.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\nIndexError: list index out of range\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_sampler (utests.test_reporter.TestReporter)\r\r\ncreate an HTML report\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_reporter.py\", line 23, in test_http_sampler\r\r\n    html_reporter.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\nIndexError: list index out of range\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_2_headers (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 94, in test_http_2_headers\r\r\n    http_sampler.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\nIndexError: list index out of range\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_duplicated_header (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 109, in test_http_duplicated_header\r\r\n    http_sampler.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\nIndexError: list index out of range\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_sampler (utests.test_sampler.TestSampler)\r\r\nsend request to postman echo\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 19, in test_http_sampler\r\r\n    http_sampler.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\nIndexError: list index out of range\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_valid_header (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 79, in test_http_valid_header\r\r\n    http_sampler.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\nIndexError: list index out of range\r\r\n\r\r\n======================================================================\r\r\nERROR: test_post_http_sampler_dict_input (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 30, in test_post_http_sampler_dict_input\r\r\n    http_sampler.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\nIndexError: list index out of range\r\r\n\r\r\n======================================================================\r\r\nERROR: test_post_http_sampler_list_input (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 41, in test_post_http_sampler_list_input\r\r\n    http_sampler.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\nIndexError: list index out of range\r\r\n\r\r\n======================================================================\r\r\nERROR: test_post_http_sampler_str_input (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 52, in test_post_http_sampler_str_input\r\r\n    http_sampler.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\nIndexError: list index out of range\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_empty_test_plan (utests.test_test_plan.TestTestPlanClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 24, in test_creation_of_empty_test_plan\r\r\n    python_test_plan_object.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\nIndexError: list index out of range\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_test_plan_with_valid_children (utests.test_test_plan.TestTestPlanClass)\r\r\nWhen children are passed through,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 35, in test_creation_of_test_plan_with_valid_children\r\r\n    test_plan.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\nIndexError: list index out of range\r\r\n\r\r\n======================================================================\r\r\nERROR: test_run_positive_flow (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 60, in test_run_positive_flow\r\r\n    test_plan.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\nIndexError: list index out of range\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_empty_setup_thread_group (utests.test_thread_group.TestThreadGroupClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 24, in test_creation_of_empty_setup_thread_group\r\r\n    python_thread_group_object.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\nIndexError: list index out of range\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_empty_teardown_thread_group (utests.test_thread_group.TestThreadGroupClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 32, in test_creation_of_empty_teardown_thread_group\r\r\n    python_thread_group_object.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\nIndexError: list index out of range\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_empty_thread_group (utests.test_thread_group.TestThreadGroupClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 16, in test_creation_of_empty_thread_group\r\r\n    python_thread_group_object.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\nIndexError: list index out of range\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_thread_group_with_valid_children (utests.test_thread_group.TestThreadGroupClass)\r\r\nWhen children are passed through,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 42, in test_creation_of_thread_group_with_valid_children\r\r\n    python_thread_group_object.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\nIndexError: list index out of range\r\r\n\r\r\n======================================================================\r\r\nERROR: test_uniform_random_timer (utests.test_timers.TestTimer)\r\r\nWhen the minimal time is 5000 milliseconds,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_timers.py\", line 20, in test_uniform_random_timer\r\r\n    timer.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\nIndexError: list index out of range\r\r\n\r\r\n----------------------------------------------------------------------\r\r\nRan 25 tests in 44.230s\r\r\n\r\r\nFAILED (errors=17)\r\r\n</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_6\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_6_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_6_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_6_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">6 : Job ID bedf9199799c4ba89234290c35ba92cc</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_6_1\" data-parent=\"#job_list___sub_accordion_6\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_6_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\__init__.py&amp;line=234\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\__init__.py, start pos: (234, 38), end pos: (234, 39)</button></a></pre><pre>operator: core/NumberReplacer, occurrence: 3</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\__init__.py\r\n+++ bsrc\\pymeter\\api\\__init__.py\r\n@@ -231,7 +231,7 @@\r\n         return (\r\n             str(type(self.java_wrapped_element))\r\n             .split(\"class \")[1]\r\n-            .split(\"'jnius.reflect.\")[1]\r\n+            .split(\"'jnius.reflect.\")[ 0]\r\n             .split(\"'\")[0]\r\n             .strip()\r\n         )</pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">Warning: Nashorn engine is planned to be removed from a future JDK release\r\r\nF00:45:15.565 [Thread Group 1-1] ERROR org.apache.jmeter.extractor.json.jmespath.JMESPathExtractor - Error processing JSON content in JSON JMESPath Extractor, message: Unrecognized token 'hi': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')\r\n at [Source: (String)\"hi dummy\"; line: 1, column: 3]\r\r\n =      1 in 00:00:00 =   11.6/s Avg:   139 Min:   139 Max:   139 Err:     0 (0.00%)\r\r\n.FFF.. =      1 in 00:00:01 =    1.4/s Avg:   646 Min:   646 Max:   646 Err:     0 (0.00%)\r\r\nFFF.FFF.F =      0 in 00:00:00 = ******/s Avg:     0 Min: 9223372036854775807 Max: -9223372036854775808 Err:     0 (0.00%)\r\r\n. +    784 in 00:00:05 =  148.1/s Avg:   178 Min:   138 Max:   676 Err:     0 (0.00%) Active: 30 Started: 30 Finished: 0\r\r\n +   2979 in 00:00:16 =  186.2/s Avg:   159 Min:   138 Max:   447 Err:     0 (0.00%) Active: 0 Started: 30 Finished: 30\r\r\n =   3763 in 00:00:21 =  176.7/s Avg:   163 Min:   138 Max:   676 Err:     0 (0.00%)\r\r\nF.FFF.F =      1 in 00:00:03 =    0.4/s Avg:   635 Min:   635 Max:   635 Err:     0 (0.00%)\r\r\nF\r\r\n======================================================================\r\r\nFAIL: test_http_sampler (utests.test_postprocessors.TestSampler)\r\r\nsend request to postman echo\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_postprocessors.py\", line 26, in test_http_sampler\r\r\n    self.assertEqual(\r\r\nAssertionError: '' != 'us.abstracta.jmeter.javadsl.core.postprocessors.DslJsonExtractor'\r\r\n+ us.abstracta.jmeter.javadsl.core.postprocessors.DslJsonExtractor\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_http_sampler (utests.test_reporter.TestReporter)\r\r\ncreate an HTML report\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_reporter.py\", line 22, in test_http_sampler\r\r\n    self.assertEqual(\r\r\nAssertionError: '' != 'us.abstracta.jmeter.javadsl.core.listeners.HtmlReporter'\r\r\n+ us.abstracta.jmeter.javadsl.core.listeners.HtmlReporter\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_http_2_headers (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 93, in test_http_2_headers\r\r\n    self.assertEqual(\r\r\nAssertionError: '' != 'us.abstracta.jmeter.javadsl.http.DslBaseHttpSampler'\r\r\n+ us.abstracta.jmeter.javadsl.http.DslBaseHttpSampler\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_http_duplicated_header (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 108, in test_http_duplicated_header\r\r\n    self.assertEqual(\r\r\nAssertionError: '' != 'us.abstracta.jmeter.javadsl.http.DslBaseHttpSampler'\r\r\n+ us.abstracta.jmeter.javadsl.http.DslBaseHttpSampler\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_http_sampler (utests.test_sampler.TestSampler)\r\r\nsend request to postman echo\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 18, in test_http_sampler\r\r\n    self.assertEqual(\r\r\nAssertionError: '' != 'us.abstracta.jmeter.javadsl.http.DslHttpSampler'\r\r\n+ us.abstracta.jmeter.javadsl.http.DslHttpSampler\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_http_valid_header (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 78, in test_http_valid_header\r\r\n    self.assertEqual(\r\r\nAssertionError: '' != 'us.abstracta.jmeter.javadsl.http.DslBaseHttpSampler'\r\r\n+ us.abstracta.jmeter.javadsl.http.DslBaseHttpSampler\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_post_http_sampler_dict_input (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 29, in test_post_http_sampler_dict_input\r\r\n    self.assertEqual(\r\r\nAssertionError: '' != 'us.abstracta.jmeter.javadsl.http.DslHttpSampler'\r\r\n+ us.abstracta.jmeter.javadsl.http.DslHttpSampler\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_post_http_sampler_list_input (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 40, in test_post_http_sampler_list_input\r\r\n    self.assertEqual(\r\r\nAssertionError: '' != 'us.abstracta.jmeter.javadsl.http.DslHttpSampler'\r\r\n+ us.abstracta.jmeter.javadsl.http.DslHttpSampler\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_post_http_sampler_str_input (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 51, in test_post_http_sampler_str_input\r\r\n    self.assertEqual(\r\r\nAssertionError: '' != 'us.abstracta.jmeter.javadsl.http.DslHttpSampler'\r\r\n+ us.abstracta.jmeter.javadsl.http.DslHttpSampler\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_creation_of_empty_test_plan (utests.test_test_plan.TestTestPlanClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 23, in test_creation_of_empty_test_plan\r\r\n    self.assertEqual(\r\r\nAssertionError: '' != 'us.abstracta.jmeter.javadsl.core.DslTestPlan'\r\r\n+ us.abstracta.jmeter.javadsl.core.DslTestPlan\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_creation_of_test_plan_with_valid_children (utests.test_test_plan.TestTestPlanClass)\r\r\nWhen children are passed through,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 34, in test_creation_of_test_plan_with_valid_children\r\r\n    self.assertEqual(\r\r\nAssertionError: '' != 'us.abstracta.jmeter.javadsl.core.DslTestPlan'\r\r\n+ us.abstracta.jmeter.javadsl.core.DslTestPlan\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_run_positive_flow (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 59, in test_run_positive_flow\r\r\n    self.assertEqual(\r\r\nAssertionError: '' != 'us.abstracta.jmeter.javadsl.core.DslTestPlan'\r\r\n+ us.abstracta.jmeter.javadsl.core.DslTestPlan\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_creation_of_empty_setup_thread_group (utests.test_thread_group.TestThreadGroupClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 23, in test_creation_of_empty_setup_thread_group\r\r\n    self.assertEqual(\r\r\nAssertionError: '' != 'us.abstracta.jmeter.javadsl.core.threadgroups.DslSetupThreadGroup'\r\r\n+ us.abstracta.jmeter.javadsl.core.threadgroups.DslSetupThreadGroup\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_creation_of_empty_teardown_thread_group (utests.test_thread_group.TestThreadGroupClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 31, in test_creation_of_empty_teardown_thread_group\r\r\n    self.assertEqual(\r\r\nAssertionError: '' != 'us.abstracta.jmeter.javadsl.core.threadgroups.DslTeardownThreadGroup'\r\r\n+ us.abstracta.jmeter.javadsl.core.threadgroups.DslTeardownThreadGroup\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_creation_of_empty_thread_group (utests.test_thread_group.TestThreadGroupClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 15, in test_creation_of_empty_thread_group\r\r\n    self.assertEqual(\r\r\nAssertionError: '' != 'us.abstracta.jmeter.javadsl.core.threadgroups.DslDefaultThreadGroup'\r\r\n+ us.abstracta.jmeter.javadsl.core.threadgroups.DslDefaultThreadGroup\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_creation_of_thread_group_with_valid_children (utests.test_thread_group.TestThreadGroupClass)\r\r\nWhen children are passed through,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 41, in test_creation_of_thread_group_with_valid_children\r\r\n    self.assertEqual(\r\r\nAssertionError: '' != 'us.abstracta.jmeter.javadsl.core.threadgroups.DslDefaultThreadGroup'\r\r\n+ us.abstracta.jmeter.javadsl.core.threadgroups.DslDefaultThreadGroup\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_uniform_random_timer (utests.test_timers.TestTimer)\r\r\nWhen the minimal time is 5000 milliseconds,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_timers.py\", line 19, in test_uniform_random_timer\r\r\n    self.assertEqual(\r\r\nAssertionError: '' != 'us.abstracta.jmeter.javadsl.core.timers.DslUniformRandomTimer'\r\r\n+ us.abstracta.jmeter.javadsl.core.timers.DslUniformRandomTimer\r\r\n\r\r\n----------------------------------------------------------------------\r\r\nRan 25 tests in 45.294s\r\r\n\r\r\nFAILED (failures=17)\r\r\n</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_7\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_7_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_7_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_7_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">7 : Job ID 32413b46d5524f55b65fb6ea5c7b7a46</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_7_1\" data-parent=\"#job_list___sub_accordion_7\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_7_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\__init__.py&amp;line=235\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\__init__.py, start pos: (235, 24), end pos: (235, 25)</button></a></pre><pre>operator: core/NumberReplacer, occurrence: 4</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\__init__.py\r\n+++ bsrc\\pymeter\\api\\__init__.py\r\n@@ -232,7 +232,7 @@\r\n             str(type(self.java_wrapped_element))\r\n             .split(\"class \")[1]\r\n             .split(\"'jnius.reflect.\")[1]\r\n-            .split(\"'\")[0]\r\n+            .split(\"'\")[ 1]\r\n             .strip()\r\n         )\r\n </pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">Warning: Nashorn engine is planned to be removed from a future JDK release\r\r\n +      1 in 00:00:02 =    0.5/s Avg:  1379 Min:  1379 Max:  1379 Err:     0 (0.00%) Active: 1 Started: 1 Finished: 0\r\r\nF00:46:03.962 [Thread Group 1-1] ERROR org.apache.jmeter.extractor.json.jmespath.JMESPathExtractor - Error processing JSON content in JSON JMESPath Extractor, message: Unrecognized token 'hi': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')\r\n at [Source: (String)\"hi dummy\"; line: 1, column: 3]\r\r\n +      1 in 00:00:00 =   10.4/s Avg:   295 Min:   295 Max:   295 Err:     0 (0.00%) Active: 1 Started: 1 Finished: 0\r\r\n =      1 in 00:00:00 =   10.2/s Avg:   295 Min:   295 Max:   295 Err:     0 (0.00%)\r\r\n. +      1 in 00:00:01 =    1.5/s Avg:   629 Min:   629 Max:   629 Err:     0 (0.00%) Active: 2 Started: 2 Finished: 0\r\r\nFFF.. =      1 in 00:00:01 =    1.5/s Avg:   609 Min:   609 Max:   609 Err:     0 (0.00%)\r\r\nFFF.FFF.F =      0 in 00:00:00 = ******/s Avg:     0 Min: 9223372036854775807 Max: -9223372036854775808 Err:     0 (0.00%)\r\r\n. +   3096 in 00:00:17 =  181.0/s Avg:   159 Min:   138 Max:   843 Err:     0 (0.00%) Active: 30 Started: 30 Finished: 0\r\r\n +    780 in 00:00:04 =  188.8/s Avg:   157 Min:   138 Max:   425 Err:     0 (0.00%) Active: 0 Started: 30 Finished: 30\r\r\n =   3876 in 00:00:21 =  182.5/s Avg:   158 Min:   138 Max:   843 Err:     0 (0.00%)\r\r\nF +      1 in 00:00:00 =  500.0/s Avg:   235 Min:   235 Max:   235 Err:     0 (0.00%) Active: 1 Started: 1 Finished: 0\r\r\n.FFF.F =      1 in 00:00:03 =    0.4/s Avg:   657 Min:   657 Max:   657 Err:     0 (0.00%)\r\r\nF\r\r\n======================================================================\r\r\nFAIL: test_http_sampler (utests.test_postprocessors.TestSampler)\r\r\nsend request to postman echo\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_postprocessors.py\", line 26, in test_http_sampler\r\r\n    self.assertEqual(\r\r\nAssertionError: '&gt;' != 'us.abstracta.jmeter.javadsl.core.postprocessors.DslJsonExtractor'\r\r\n- &gt;\r\r\n+ us.abstracta.jmeter.javadsl.core.postprocessors.DslJsonExtractor\r\r\n\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_http_sampler (utests.test_reporter.TestReporter)\r\r\ncreate an HTML report\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_reporter.py\", line 22, in test_http_sampler\r\r\n    self.assertEqual(\r\r\nAssertionError: '&gt;' != 'us.abstracta.jmeter.javadsl.core.listeners.HtmlReporter'\r\r\n- &gt;\r\r\n+ us.abstracta.jmeter.javadsl.core.listeners.HtmlReporter\r\r\n\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_http_2_headers (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 93, in test_http_2_headers\r\r\n    self.assertEqual(\r\r\nAssertionError: '&gt;' != 'us.abstracta.jmeter.javadsl.http.DslBaseHttpSampler'\r\r\n- &gt;\r\r\n+ us.abstracta.jmeter.javadsl.http.DslBaseHttpSampler\r\r\n\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_http_duplicated_header (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 108, in test_http_duplicated_header\r\r\n    self.assertEqual(\r\r\nAssertionError: '&gt;' != 'us.abstracta.jmeter.javadsl.http.DslBaseHttpSampler'\r\r\n- &gt;\r\r\n+ us.abstracta.jmeter.javadsl.http.DslBaseHttpSampler\r\r\n\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_http_sampler (utests.test_sampler.TestSampler)\r\r\nsend request to postman echo\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 18, in test_http_sampler\r\r\n    self.assertEqual(\r\r\nAssertionError: '&gt;' != 'us.abstracta.jmeter.javadsl.http.DslHttpSampler'\r\r\n- &gt;\r\r\n+ us.abstracta.jmeter.javadsl.http.DslHttpSampler\r\r\n\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_http_valid_header (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 78, in test_http_valid_header\r\r\n    self.assertEqual(\r\r\nAssertionError: '&gt;' != 'us.abstracta.jmeter.javadsl.http.DslBaseHttpSampler'\r\r\n- &gt;\r\r\n+ us.abstracta.jmeter.javadsl.http.DslBaseHttpSampler\r\r\n\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_post_http_sampler_dict_input (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 29, in test_post_http_sampler_dict_input\r\r\n    self.assertEqual(\r\r\nAssertionError: '&gt;' != 'us.abstracta.jmeter.javadsl.http.DslHttpSampler'\r\r\n- &gt;\r\r\n+ us.abstracta.jmeter.javadsl.http.DslHttpSampler\r\r\n\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_post_http_sampler_list_input (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 40, in test_post_http_sampler_list_input\r\r\n    self.assertEqual(\r\r\nAssertionError: '&gt;' != 'us.abstracta.jmeter.javadsl.http.DslHttpSampler'\r\r\n- &gt;\r\r\n+ us.abstracta.jmeter.javadsl.http.DslHttpSampler\r\r\n\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_post_http_sampler_str_input (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 51, in test_post_http_sampler_str_input\r\r\n    self.assertEqual(\r\r\nAssertionError: '&gt;' != 'us.abstracta.jmeter.javadsl.http.DslHttpSampler'\r\r\n- &gt;\r\r\n+ us.abstracta.jmeter.javadsl.http.DslHttpSampler\r\r\n\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_creation_of_empty_test_plan (utests.test_test_plan.TestTestPlanClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 23, in test_creation_of_empty_test_plan\r\r\n    self.assertEqual(\r\r\nAssertionError: '&gt;' != 'us.abstracta.jmeter.javadsl.core.DslTestPlan'\r\r\n- &gt;\r\r\n+ us.abstracta.jmeter.javadsl.core.DslTestPlan\r\r\n\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_creation_of_test_plan_with_valid_children (utests.test_test_plan.TestTestPlanClass)\r\r\nWhen children are passed through,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 34, in test_creation_of_test_plan_with_valid_children\r\r\n    self.assertEqual(\r\r\nAssertionError: '&gt;' != 'us.abstracta.jmeter.javadsl.core.DslTestPlan'\r\r\n- &gt;\r\r\n+ us.abstracta.jmeter.javadsl.core.DslTestPlan\r\r\n\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_run_positive_flow (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 59, in test_run_positive_flow\r\r\n    self.assertEqual(\r\r\nAssertionError: '&gt;' != 'us.abstracta.jmeter.javadsl.core.DslTestPlan'\r\r\n- &gt;\r\r\n+ us.abstracta.jmeter.javadsl.core.DslTestPlan\r\r\n\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_creation_of_empty_setup_thread_group (utests.test_thread_group.TestThreadGroupClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 23, in test_creation_of_empty_setup_thread_group\r\r\n    self.assertEqual(\r\r\nAssertionError: '&gt;' != 'us.abstracta.jmeter.javadsl.core.threadgroups.DslSetupThreadGroup'\r\r\n- &gt;\r\r\n+ us.abstracta.jmeter.javadsl.core.threadgroups.DslSetupThreadGroup\r\r\n\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_creation_of_empty_teardown_thread_group (utests.test_thread_group.TestThreadGroupClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 31, in test_creation_of_empty_teardown_thread_group\r\r\n    self.assertEqual(\r\r\nAssertionError: '&gt;' != 'us.abstracta.jmeter.javadsl.core.threadgroups.DslTeardownThreadGroup'\r\r\n- &gt;\r\r\n+ us.abstracta.jmeter.javadsl.core.threadgroups.DslTeardownThreadGroup\r\r\n\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_creation_of_empty_thread_group (utests.test_thread_group.TestThreadGroupClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 15, in test_creation_of_empty_thread_group\r\r\n    self.assertEqual(\r\r\nAssertionError: '&gt;' != 'us.abstracta.jmeter.javadsl.core.threadgroups.DslDefaultThreadGroup'\r\r\n- &gt;\r\r\n+ us.abstracta.jmeter.javadsl.core.threadgroups.DslDefaultThreadGroup\r\r\n\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_creation_of_thread_group_with_valid_children (utests.test_thread_group.TestThreadGroupClass)\r\r\nWhen children are passed through,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 41, in test_creation_of_thread_group_with_valid_children\r\r\n    self.assertEqual(\r\r\nAssertionError: '&gt;' != 'us.abstracta.jmeter.javadsl.core.threadgroups.DslDefaultThreadGroup'\r\r\n- &gt;\r\r\n+ us.abstracta.jmeter.javadsl.core.threadgroups.DslDefaultThreadGroup\r\r\n\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_uniform_random_timer (utests.test_timers.TestTimer)\r\r\nWhen the minimal time is 5000 milliseconds,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_timers.py\", line 19, in test_uniform_random_timer\r\r\n    self.assertEqual(\r\r\nAssertionError: '&gt;' != 'us.abstracta.jmeter.javadsl.core.timers.DslUniformRandomTimer'\r\r\n- &gt;\r\r\n+ us.abstracta.jmeter.javadsl.core.timers.DslUniformRandomTimer\r\r\n\r\r\n\r\r\n----------------------------------------------------------------------\r\r\nRan 25 tests in 45.603s\r\r\n\r\r\nFAILED (failures=17)\r\r\n</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_8\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_8_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_8_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_8_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">8 : Job ID 46a618a5a1f4468f92c3605504436fdf</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_8_1\" data-parent=\"#job_list___sub_accordion_8\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_8_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\__init__.py&amp;line=235\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\__init__.py, start pos: (235, 24), end pos: (235, 25)</button></a></pre><pre>operator: core/NumberReplacer, occurrence: 5</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\__init__.py\r\n+++ bsrc\\pymeter\\api\\__init__.py\r\n@@ -232,7 +232,7 @@\r\n             str(type(self.java_wrapped_element))\r\n             .split(\"class \")[1]\r\n             .split(\"'jnius.reflect.\")[1]\r\n-            .split(\"'\")[0]\r\n+            .split(\"'\")[ -1]\r\n             .strip()\r\n         )\r\n </pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">Warning: Nashorn engine is planned to be removed from a future JDK release\r\r\nF00:46:49.250 [Thread Group 1-1] ERROR org.apache.jmeter.extractor.json.jmespath.JMESPathExtractor - Error processing JSON content in JSON JMESPath Extractor, message: Unrecognized token 'hi': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')\r\n at [Source: (String)\"hi dummy\"; line: 1, column: 3]\r\r\n =      1 in 00:00:00 =   10.4/s Avg:   329 Min:   329 Max:   329 Err:     0 (0.00%)\r\r\n.FFF.. =      1 in 00:00:01 =    1.4/s Avg:   629 Min:   629 Max:   629 Err:     0 (0.00%)\r\r\nFFF.FFF.F =      0 in 00:00:00 = ******/s Avg:     0 Min: 9223372036854775807 Max: -9223372036854775808 Err:     0 (0.00%)\r\r\n. +    120 in 00:00:02 =   69.2/s Avg:   267 Min:   141 Max:   669 Err:     0 (0.00%) Active: 30 Started: 30 Finished: 0\r\r\n +   3689 in 00:00:20 =  188.9/s Avg:   158 Min:   138 Max:   695 Err:     0 (0.00%) Active: 0 Started: 30 Finished: 30\r\r\n =   3809 in 00:00:21 =  179.2/s Avg:   161 Min:   138 Max:   695 Err:     0 (0.00%)\r\r\nF.FFF.F =      1 in 00:00:03 =    0.4/s Avg:   644 Min:   644 Max:   644 Err:     0 (0.00%)\r\r\nF\r\r\n======================================================================\r\r\nFAIL: test_http_sampler (utests.test_postprocessors.TestSampler)\r\r\nsend request to postman echo\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_postprocessors.py\", line 26, in test_http_sampler\r\r\n    self.assertEqual(\r\r\nAssertionError: '&gt;' != 'us.abstracta.jmeter.javadsl.core.postprocessors.DslJsonExtractor'\r\r\n- &gt;\r\r\n+ us.abstracta.jmeter.javadsl.core.postprocessors.DslJsonExtractor\r\r\n\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_http_sampler (utests.test_reporter.TestReporter)\r\r\ncreate an HTML report\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_reporter.py\", line 22, in test_http_sampler\r\r\n    self.assertEqual(\r\r\nAssertionError: '&gt;' != 'us.abstracta.jmeter.javadsl.core.listeners.HtmlReporter'\r\r\n- &gt;\r\r\n+ us.abstracta.jmeter.javadsl.core.listeners.HtmlReporter\r\r\n\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_http_2_headers (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 93, in test_http_2_headers\r\r\n    self.assertEqual(\r\r\nAssertionError: '&gt;' != 'us.abstracta.jmeter.javadsl.http.DslBaseHttpSampler'\r\r\n- &gt;\r\r\n+ us.abstracta.jmeter.javadsl.http.DslBaseHttpSampler\r\r\n\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_http_duplicated_header (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 108, in test_http_duplicated_header\r\r\n    self.assertEqual(\r\r\nAssertionError: '&gt;' != 'us.abstracta.jmeter.javadsl.http.DslBaseHttpSampler'\r\r\n- &gt;\r\r\n+ us.abstracta.jmeter.javadsl.http.DslBaseHttpSampler\r\r\n\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_http_sampler (utests.test_sampler.TestSampler)\r\r\nsend request to postman echo\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 18, in test_http_sampler\r\r\n    self.assertEqual(\r\r\nAssertionError: '&gt;' != 'us.abstracta.jmeter.javadsl.http.DslHttpSampler'\r\r\n- &gt;\r\r\n+ us.abstracta.jmeter.javadsl.http.DslHttpSampler\r\r\n\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_http_valid_header (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 78, in test_http_valid_header\r\r\n    self.assertEqual(\r\r\nAssertionError: '&gt;' != 'us.abstracta.jmeter.javadsl.http.DslBaseHttpSampler'\r\r\n- &gt;\r\r\n+ us.abstracta.jmeter.javadsl.http.DslBaseHttpSampler\r\r\n\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_post_http_sampler_dict_input (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 29, in test_post_http_sampler_dict_input\r\r\n    self.assertEqual(\r\r\nAssertionError: '&gt;' != 'us.abstracta.jmeter.javadsl.http.DslHttpSampler'\r\r\n- &gt;\r\r\n+ us.abstracta.jmeter.javadsl.http.DslHttpSampler\r\r\n\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_post_http_sampler_list_input (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 40, in test_post_http_sampler_list_input\r\r\n    self.assertEqual(\r\r\nAssertionError: '&gt;' != 'us.abstracta.jmeter.javadsl.http.DslHttpSampler'\r\r\n- &gt;\r\r\n+ us.abstracta.jmeter.javadsl.http.DslHttpSampler\r\r\n\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_post_http_sampler_str_input (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 51, in test_post_http_sampler_str_input\r\r\n    self.assertEqual(\r\r\nAssertionError: '&gt;' != 'us.abstracta.jmeter.javadsl.http.DslHttpSampler'\r\r\n- &gt;\r\r\n+ us.abstracta.jmeter.javadsl.http.DslHttpSampler\r\r\n\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_creation_of_empty_test_plan (utests.test_test_plan.TestTestPlanClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 23, in test_creation_of_empty_test_plan\r\r\n    self.assertEqual(\r\r\nAssertionError: '&gt;' != 'us.abstracta.jmeter.javadsl.core.DslTestPlan'\r\r\n- &gt;\r\r\n+ us.abstracta.jmeter.javadsl.core.DslTestPlan\r\r\n\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_creation_of_test_plan_with_valid_children (utests.test_test_plan.TestTestPlanClass)\r\r\nWhen children are passed through,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 34, in test_creation_of_test_plan_with_valid_children\r\r\n    self.assertEqual(\r\r\nAssertionError: '&gt;' != 'us.abstracta.jmeter.javadsl.core.DslTestPlan'\r\r\n- &gt;\r\r\n+ us.abstracta.jmeter.javadsl.core.DslTestPlan\r\r\n\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_run_positive_flow (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 59, in test_run_positive_flow\r\r\n    self.assertEqual(\r\r\nAssertionError: '&gt;' != 'us.abstracta.jmeter.javadsl.core.DslTestPlan'\r\r\n- &gt;\r\r\n+ us.abstracta.jmeter.javadsl.core.DslTestPlan\r\r\n\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_creation_of_empty_setup_thread_group (utests.test_thread_group.TestThreadGroupClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 23, in test_creation_of_empty_setup_thread_group\r\r\n    self.assertEqual(\r\r\nAssertionError: '&gt;' != 'us.abstracta.jmeter.javadsl.core.threadgroups.DslSetupThreadGroup'\r\r\n- &gt;\r\r\n+ us.abstracta.jmeter.javadsl.core.threadgroups.DslSetupThreadGroup\r\r\n\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_creation_of_empty_teardown_thread_group (utests.test_thread_group.TestThreadGroupClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 31, in test_creation_of_empty_teardown_thread_group\r\r\n    self.assertEqual(\r\r\nAssertionError: '&gt;' != 'us.abstracta.jmeter.javadsl.core.threadgroups.DslTeardownThreadGroup'\r\r\n- &gt;\r\r\n+ us.abstracta.jmeter.javadsl.core.threadgroups.DslTeardownThreadGroup\r\r\n\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_creation_of_empty_thread_group (utests.test_thread_group.TestThreadGroupClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 15, in test_creation_of_empty_thread_group\r\r\n    self.assertEqual(\r\r\nAssertionError: '&gt;' != 'us.abstracta.jmeter.javadsl.core.threadgroups.DslDefaultThreadGroup'\r\r\n- &gt;\r\r\n+ us.abstracta.jmeter.javadsl.core.threadgroups.DslDefaultThreadGroup\r\r\n\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_creation_of_thread_group_with_valid_children (utests.test_thread_group.TestThreadGroupClass)\r\r\nWhen children are passed through,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 41, in test_creation_of_thread_group_with_valid_children\r\r\n    self.assertEqual(\r\r\nAssertionError: '&gt;' != 'us.abstracta.jmeter.javadsl.core.threadgroups.DslDefaultThreadGroup'\r\r\n- &gt;\r\r\n+ us.abstracta.jmeter.javadsl.core.threadgroups.DslDefaultThreadGroup\r\r\n\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_uniform_random_timer (utests.test_timers.TestTimer)\r\r\nWhen the minimal time is 5000 milliseconds,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_timers.py\", line 19, in test_uniform_random_timer\r\r\n    self.assertEqual(\r\r\nAssertionError: '&gt;' != 'us.abstracta.jmeter.javadsl.core.timers.DslUniformRandomTimer'\r\r\n- &gt;\r\r\n+ us.abstracta.jmeter.javadsl.core.timers.DslUniformRandomTimer\r\r\n\r\r\n\r\r\n----------------------------------------------------------------------\r\r\nRan 25 tests in 46.460s\r\r\n\r\r\nFAILED (failures=17)\r\r\n</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_9\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_9_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_9_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_9_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">9 : Job ID 8b82a983c6b34e80946858ec4508afba</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_9_1\" data-parent=\"#job_list___sub_accordion_9\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_9_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\__init__.py&amp;line=239\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\__init__.py, start pos: (239, 4), end pos: (240, 0)</button></a></pre><pre>operator: core/RemoveDecorator, occurrence: 0</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\__init__.py\r\n+++ bsrc\\pymeter\\api\\__init__.py\r\n@@ -235,8 +235,6 @@\r\n             .split(\"'\")[0]\r\n             .strip()\r\n         )\r\n-\r\n-    @property\r\n     def java_wrapped_element(self):\r\n         \"\"\"retrieves the java element wrapped in the python object by class name\"\"\"\r\n         if not self.__class__.wrapped_instance_name:</pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">EEEEE..EEE.EEE.EEEEEEE.EE\r\r\n======================================================================\r\r\nERROR: test_http_sampler (utests.test_postprocessors.TestSampler)\r\r\nsend request to postman echo\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_postprocessors.py\", line 17, in test_http_sampler\r\r\n    http_sampler = HttpSampler(\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 99, in __init__\r\r\n    self._http_sampler_instance.children(\r\r\n  File \"jnius\\jnius_export_class.pxi\", line 879, in jnius.JavaMethod.__call__\r\r\n  File \"jnius\\jnius_conversion.pxi\", line 158, in jnius.populate_args\r\r\n  File \"jnius\\jnius_conversion.pxi\", line 815, in jnius.convert_pyarray_to_java\r\r\njnius.JavaException: Invalid variable (&lt;bound method BaseJMeterClass.java_wrapped_element of &lt;pymeter.api.postprocessors.JsonExtractor object at 0x00000180A073D300&gt;&gt;,) used for L array 'Lus/abstracta/jmeter/javadsl/core/samplers/BaseSampler$SamplerChild;'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_postprocessor_on_thread_group (utests.test_postprocessors.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_postprocessors.py\", line 41, in test_postprocessor_on_thread_group\r\r\n    tg1 = ThreadGroupSimple(1, 1, dummy_sampler, json_extractor)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 233, in __init__\r\r\n    self._thread_group_simple_instance.children(\r\r\n  File \"jnius\\jnius_export_class.pxi\", line 1177, in jnius.JavaMultipleMethod.__call__\r\r\n  File \"jnius\\jnius_export_class.pxi\", line 879, in jnius.JavaMethod.__call__\r\r\n  File \"jnius\\jnius_conversion.pxi\", line 158, in jnius.populate_args\r\r\n  File \"jnius\\jnius_conversion.pxi\", line 815, in jnius.convert_pyarray_to_java\r\r\njnius.JavaException: Invalid variable (&lt;bound method BaseJMeterClass.java_wrapped_element of &lt;pymeter.api.samplers.DummySampler object at 0x00000180A073FA90&gt;&gt;, &lt;bound method BaseJMeterClass.java_wrapped_element of &lt;pymeter.api.postprocessors.JsonExtractor object at 0x00000180A073D300&gt;&gt;) used for L array 'Lus/abstracta/jmeter/javadsl/core/threadgroups/BaseThreadGroup$ThreadGroupChild;'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_sampler (utests.test_reporter.TestReporter)\r\r\ncreate an HTML report\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_reporter.py\", line 17, in test_http_sampler\r\r\n    tg = ThreadGroupWithRampUpAndHold(2, 1, 2, http_sampler, name=\"Some Name\")\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 261, in __init__\r\r\n    self._ramp_to_and_hold_instance.children(\r\r\n  File \"jnius\\jnius_export_class.pxi\", line 1177, in jnius.JavaMultipleMethod.__call__\r\r\n  File \"jnius\\jnius_export_class.pxi\", line 879, in jnius.JavaMethod.__call__\r\r\n  File \"jnius\\jnius_conversion.pxi\", line 158, in jnius.populate_args\r\r\n  File \"jnius\\jnius_conversion.pxi\", line 815, in jnius.convert_pyarray_to_java\r\r\njnius.JavaException: Invalid variable (&lt;bound method BaseJMeterClass.java_wrapped_element of &lt;pymeter.api.samplers.HttpSampler object at 0x000001809E50EC80&gt;&gt;,) used for L array 'Lus/abstracta/jmeter/javadsl/core/threadgroups/BaseThreadGroup$ThreadGroupChild;'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_2_headers (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 90, in test_http_2_headers\r\r\n    .header(\"key1\", \"val1\")\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 148, in header\r\r\n    self._http_sampler_instance = self.java_wrapped_element.header(key, value)\r\r\nAttributeError: 'function' object has no attribute 'header'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_duplicated_header (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 105, in test_http_duplicated_header\r\r\n    .header(\"key1\", \"val1\")\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 148, in header\r\r\n    self._http_sampler_instance = self.java_wrapped_element.header(key, value)\r\r\nAttributeError: 'function' object has no attribute 'header'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_sampler (utests.test_sampler.TestSampler)\r\r\nsend request to postman echo\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 15, in test_http_sampler\r\r\n    tg1 = ThreadGroupSimple(1, 1, http_sampler)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 233, in __init__\r\r\n    self._thread_group_simple_instance.children(\r\r\n  File \"jnius\\jnius_export_class.pxi\", line 1177, in jnius.JavaMultipleMethod.__call__\r\r\n  File \"jnius\\jnius_export_class.pxi\", line 879, in jnius.JavaMethod.__call__\r\r\n  File \"jnius\\jnius_conversion.pxi\", line 158, in jnius.populate_args\r\r\n  File \"jnius\\jnius_conversion.pxi\", line 815, in jnius.convert_pyarray_to_java\r\r\njnius.JavaException: Invalid variable (&lt;bound method BaseJMeterClass.java_wrapped_element of &lt;pymeter.api.samplers.HttpSampler object at 0x00000180A073C7F0&gt;&gt;,) used for L array 'Lus/abstracta/jmeter/javadsl/core/threadgroups/BaseThreadGroup$ThreadGroupChild;'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_valid_header (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 77, in test_http_valid_header\r\r\n    ).header(\"key1\", \"val1\")\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 148, in header\r\r\n    self._http_sampler_instance = self.java_wrapped_element.header(key, value)\r\r\nAttributeError: 'function' object has no attribute 'header'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_post_http_sampler_dict_input (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 28, in test_post_http_sampler_dict_input\r\r\n    ).post({\"var1\": 1}, ContentType.APPLICATION_JSON)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 126, in post\r\r\n    self._http_sampler_instance = self.java_wrapped_element.post(\r\r\nAttributeError: 'function' object has no attribute 'post'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_post_http_sampler_list_input (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 39, in test_post_http_sampler_list_input\r\r\n    ).post([1, 2, 3, 4], ContentType.APPLICATION_JSON)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 126, in post\r\r\n    self._http_sampler_instance = self.java_wrapped_element.post(\r\r\nAttributeError: 'function' object has no attribute 'post'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_post_http_sampler_str_input (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 50, in test_post_http_sampler_str_input\r\r\n    ).post('{\"name\": \"John Doe\"}', ContentType.APPLICATION_JSON)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 126, in post\r\r\n    self._http_sampler_instance = self.java_wrapped_element.post(\r\r\nAttributeError: 'function' object has no attribute 'post'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_empty_test_plan (utests.test_test_plan.TestTestPlanClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 24, in test_creation_of_empty_test_plan\r\r\n    python_test_plan_object.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\nIndexError: list index out of range\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_test_plan_with_valid_children (utests.test_test_plan.TestTestPlanClass)\r\r\nWhen children are passed through,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 33, in test_creation_of_test_plan_with_valid_children\r\r\n    test_plan = TestPlan(tg1, tg2)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 155, in __init__\r\r\n    self._test_plan_instance.children(\r\r\n  File \"jnius\\jnius_export_class.pxi\", line 879, in jnius.JavaMethod.__call__\r\r\n  File \"jnius\\jnius_conversion.pxi\", line 158, in jnius.populate_args\r\r\n  File \"jnius\\jnius_conversion.pxi\", line 815, in jnius.convert_pyarray_to_java\r\r\njnius.JavaException: Invalid variable (&lt;bound method BaseJMeterClass.java_wrapped_element of &lt;pymeter.api.config.ThreadGroupWithRampUpAndHold object at 0x00000180A073F010&gt;&gt;, &lt;bound method BaseJMeterClass.java_wrapped_element of &lt;pymeter.api.config.ThreadGroupWithRampUpAndHold object at 0x00000180A0719D80&gt;&gt;) used for L array 'Lus/abstracta/jmeter/javadsl/core/DslTestPlan$TestPlanChild;'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_run_empty_flow (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 90, in test_run_empty_flow\r\r\n    test_plan = TestPlan(tg1)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 155, in __init__\r\r\n    self._test_plan_instance.children(\r\r\n  File \"jnius\\jnius_export_class.pxi\", line 879, in jnius.JavaMethod.__call__\r\r\n  File \"jnius\\jnius_conversion.pxi\", line 158, in jnius.populate_args\r\r\n  File \"jnius\\jnius_conversion.pxi\", line 815, in jnius.convert_pyarray_to_java\r\r\njnius.JavaException: Invalid variable (&lt;bound method BaseJMeterClass.java_wrapped_element of &lt;pymeter.api.config.ThreadGroupWithRampUpAndHold object at 0x00000180A073D540&gt;&gt;,) used for L array 'Lus/abstracta/jmeter/javadsl/core/DslTestPlan$TestPlanChild;'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_run_positive_flow (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 56, in test_run_positive_flow\r\r\n    tg1 = ThreadGroupWithRampUpAndHold(30, 1, 20, http_sampler)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 261, in __init__\r\r\n    self._ramp_to_and_hold_instance.children(\r\r\n  File \"jnius\\jnius_export_class.pxi\", line 1177, in jnius.JavaMultipleMethod.__call__\r\r\n  File \"jnius\\jnius_export_class.pxi\", line 879, in jnius.JavaMethod.__call__\r\r\n  File \"jnius\\jnius_conversion.pxi\", line 158, in jnius.populate_args\r\r\n  File \"jnius\\jnius_conversion.pxi\", line 815, in jnius.convert_pyarray_to_java\r\r\njnius.JavaException: Invalid variable (&lt;bound method BaseJMeterClass.java_wrapped_element of &lt;pymeter.api.samplers.HttpSampler object at 0x00000180A073CC40&gt;&gt;,) used for L array 'Lus/abstracta/jmeter/javadsl/core/threadgroups/BaseThreadGroup$ThreadGroupChild;'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_run_validate_order (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 99, in test_run_validate_order\r\r\n    tg_setup = SetupThreadGroup(dummy_sampler_for_setup)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 195, in __init__\r\r\n    self._setup_thread_group_instance.children(\r\r\n  File \"jnius\\jnius_export_class.pxi\", line 1177, in jnius.JavaMultipleMethod.__call__\r\r\n  File \"jnius\\jnius_export_class.pxi\", line 879, in jnius.JavaMethod.__call__\r\r\n  File \"jnius\\jnius_conversion.pxi\", line 158, in jnius.populate_args\r\r\n  File \"jnius\\jnius_conversion.pxi\", line 815, in jnius.convert_pyarray_to_java\r\r\njnius.JavaException: Invalid variable (&lt;bound method BaseJMeterClass.java_wrapped_element of &lt;pymeter.api.samplers.DummySampler object at 0x00000180A073CC40&gt;&gt;,) used for L array 'Lus/abstracta/jmeter/javadsl/core/threadgroups/BaseThreadGroup$ThreadGroupChild;'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_empty_setup_thread_group (utests.test_thread_group.TestThreadGroupClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 24, in test_creation_of_empty_setup_thread_group\r\r\n    python_thread_group_object.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\nIndexError: list index out of range\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_empty_teardown_thread_group (utests.test_thread_group.TestThreadGroupClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 32, in test_creation_of_empty_teardown_thread_group\r\r\n    python_thread_group_object.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\nIndexError: list index out of range\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_empty_thread_group (utests.test_thread_group.TestThreadGroupClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 16, in test_creation_of_empty_thread_group\r\r\n    python_thread_group_object.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\nIndexError: list index out of range\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_thread_group_with_valid_children (utests.test_thread_group.TestThreadGroupClass)\r\r\nWhen children are passed through,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 40, in test_creation_of_thread_group_with_valid_children\r\r\n    python_thread_group_object = ThreadGroupWithRampUpAndHold(1, 1, 1, http_sampler)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 261, in __init__\r\r\n    self._ramp_to_and_hold_instance.children(\r\r\n  File \"jnius\\jnius_export_class.pxi\", line 1177, in jnius.JavaMultipleMethod.__call__\r\r\n  File \"jnius\\jnius_export_class.pxi\", line 879, in jnius.JavaMethod.__call__\r\r\n  File \"jnius\\jnius_conversion.pxi\", line 158, in jnius.populate_args\r\r\n  File \"jnius\\jnius_conversion.pxi\", line 815, in jnius.convert_pyarray_to_java\r\r\njnius.JavaException: Invalid variable (&lt;bound method BaseJMeterClass.java_wrapped_element of &lt;pymeter.api.samplers.HttpSampler object at 0x00000180A073CD00&gt;&gt;,) used for L array 'Lus/abstracta/jmeter/javadsl/core/threadgroups/BaseThreadGroup$ThreadGroupChild;'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_uniform_random_timer (utests.test_timers.TestTimer)\r\r\nWhen the minimal time is 5000 milliseconds,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_timers.py\", line 15, in test_uniform_random_timer\r\r\n    http_sampler = HttpSampler(\"Echo\", \"https://postman-echo.com/get?var=1\", timer)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 99, in __init__\r\r\n    self._http_sampler_instance.children(\r\r\n  File \"jnius\\jnius_export_class.pxi\", line 879, in jnius.JavaMethod.__call__\r\r\n  File \"jnius\\jnius_conversion.pxi\", line 158, in jnius.populate_args\r\r\n  File \"jnius\\jnius_conversion.pxi\", line 815, in jnius.convert_pyarray_to_java\r\r\njnius.JavaException: Invalid variable (&lt;bound method BaseJMeterClass.java_wrapped_element of &lt;pymeter.api.timers.UniformRandomTimer object at 0x00000180A073ED70&gt;&gt;,) used for L array 'Lus/abstracta/jmeter/javadsl/core/samplers/BaseSampler$SamplerChild;'\r\r\n\r\r\n----------------------------------------------------------------------\r\r\nRan 25 tests in 1.246s\r\r\n\r\r\nFAILED (errors=20)\r\r\n</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_10\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_10_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_10_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_10_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">10 : Job ID 075841353ef64a199e5d1fef3309e4bc</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_10_1\" data-parent=\"#job_list___sub_accordion_10\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_10_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\reporters.py&amp;line=48\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\reporters.py, start pos: (48, 30), end pos: (48, 32)</button></a></pre><pre>operator: core/ReplaceOrWithAnd, occurrence: 0</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\reporters.py\r\n+++ bsrc\\pymeter\\api\\reporters.py\r\n@@ -45,7 +45,7 @@\r\n     \"\"\"Reports results to HTML format\"\"\"\r\n     def __init__(self, directory: Optional[str] = None) -&gt; None:\r\n \r\n-        directory = directory or os.path.join(\r\n+        directory = directory and os.path.join(\r\n             \"output\", f'html-report-{datetime.now().strftime(\"%m%d%Y%H%M%S\")}'\r\n         )\r\n         self._html_reporter_instance = HtmlReporter.jmeter_class.htmlReporter(directory)</pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">Warning: Nashorn engine is planned to be removed from a future JDK release\r\r\nE00:47:45.895 [Thread Group 1-1] ERROR org.apache.jmeter.extractor.json.jmespath.JMESPathExtractor - Error processing JSON content in JSON JMESPath Extractor, message: Unrecognized token 'hi': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')\r\n at [Source: (String)\"hi dummy\"; line: 1, column: 3]\r\r\n =      1 in 00:00:00 =    7.1/s Avg:   397 Min:   397 Max:   397 Err:     0 (0.00%)\r\r\n.F.... =      1 in 00:00:01 =    1.5/s Avg:   615 Min:   615 Max:   615 Err:     0 (0.00%)\r\r\n......... =      0 in 00:00:00 = ******/s Avg:     0 Min: 9223372036854775807 Max: -9223372036854775808 Err:     0 (0.00%)\r\r\n. +    636 in 00:00:04 =  141.6/s Avg:   182 Min:   140 Max:   675 Err:     0 (0.00%) Active: 30 Started: 30 Finished: 0\r\r\n +   3155 in 00:00:17 =  188.9/s Avg:   158 Min:   140 Max:   528 Err:     0 (0.00%) Active: 0 Started: 30 Finished: 30\r\r\n =   3791 in 00:00:21 =  178.8/s Avg:   162 Min:   140 Max:   675 Err:     0 (0.00%)\r\r\n.E..... =      1 in 00:00:03 =    0.4/s Avg:   607 Min:   607 Max:   607 Err:     0 (0.00%)\r\r\n.\r\r\n======================================================================\r\r\nERROR: test_http_sampler (utests.test_postprocessors.TestSampler)\r\r\nsend request to postman echo\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_postprocessors.py\", line 31, in test_http_sampler\r\r\n    with open(path_to_jtl, \"r\", encoding=\"utf-8\") as jtl_file:\r\r\nFileNotFoundError: [Errno 2] No such file or directory: 'output\\\\a0fec9b4-b95c-49c9-93b4-fd13dc8a2ef0\\\\report.jtl'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_run_validate_order (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 108, in test_run_validate_order\r\r\n    with open(path_to_jtl, \"r\", encoding=\"utf-8\") as jtl_file:\r\r\nFileNotFoundError: [Errno 2] No such file or directory: 'output\\\\5659f6b8-cdb5-42b8-b382-aaf1a4df23bc\\\\report.jtl'\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_http_sampler (utests.test_reporter.TestReporter)\r\r\ncreate an HTML report\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_reporter.py\", line 26, in test_http_sampler\r\r\n    self.assertTrue(os.path.exists(output_dir))\r\r\nAssertionError: False is not true\r\r\n\r\r\n----------------------------------------------------------------------\r\r\nRan 25 tests in 45.298s\r\r\n\r\r\nFAILED (failures=1, errors=2)\r\r\n</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_11\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_11_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_11_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_11_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">11 : Job ID 4cc3ca0f359a48d186cc87d9ff279c4a</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_11_1\" data-parent=\"#job_list___sub_accordion_11\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_11_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\samplers.py&amp;line=121\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\samplers.py, start pos: (121, 13), end pos: (121, 16)</button></a></pre><pre>operator: core/ReplaceUnaryOperator_Delete_Not, occurrence: 0</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\samplers.py\r\n+++ bsrc\\pymeter\\api\\samplers.py\r\n@@ -118,7 +118,7 @@\r\n \r\n         if isinstance(body, (dict, list)):\r\n             body = json.dumps(body)\r\n-        elif not isinstance(body, str):\r\n+        elif  isinstance(body, str):\r\n             raise TypeError(\r\n                 f\"Invalid type, expected `list`, 'dict', or 'str'. got {type(body)}\"\r\n             )</pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">Warning: Nashorn engine is planned to be removed from a future JDK release\r\r\n.00:48:32.473 [Thread Group 1-1] ERROR org.apache.jmeter.extractor.json.jmespath.JMESPathExtractor - Error processing JSON content in JSON JMESPath Extractor, message: Unrecognized token 'hi': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')\r\n at [Source: (String)\"hi dummy\"; line: 1, column: 3]\r\r\n +      1 in 00:00:00 =   10.9/s Avg:   237 Min:   237 Max:   237 Err:     0 (0.00%) Active: 1 Started: 1 Finished: 0\r\r\n =      1 in 00:00:00 =   10.6/s Avg:   237 Min:   237 Max:   237 Err:     0 (0.00%)\r\r\n. +      1 in 00:00:01 =    1.5/s Avg:   623 Min:   623 Max:   623 Err:     0 (0.00%) Active: 2 Started: 2 Finished: 0\r\r\n..... =      1 in 00:00:01 =    1.5/s Avg:   599 Min:   599 Max:   599 Err:     0 (0.00%)\r\r\n...E.E... =      0 in 00:00:00 = ******/s Avg:     0 Min: 9223372036854775807 Max: -9223372036854775808 Err:     0 (0.00%)\r\r\n. +   3263 in 00:00:18 =  181.1/s Avg:   159 Min:   139 Max:   659 Err:     0 (0.00%) Active: 30 Started: 30 Finished: 0\r\r\n +    627 in 00:00:03 =  186.8/s Avg:   155 Min:   139 Max:   441 Err:     0 (0.00%) Active: 0 Started: 30 Finished: 30\r\r\n =   3890 in 00:00:21 =  182.0/s Avg:   158 Min:   139 Max:   659 Err:     0 (0.00%)\r\r\nF +      1 in 00:00:00 = 1000.0/s Avg:   383 Min:   383 Max:   383 Err:     0 (0.00%) Active: 1 Started: 1 Finished: 0\r\r\n...... =      1 in 00:00:03 =    0.4/s Avg:   631 Min:   631 Max:   631 Err:     0 (0.00%)\r\r\n.\r\r\n======================================================================\r\r\nERROR: test_post_http_sampler_int_input (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 62, in test_post_http_sampler_int_input\r\r\n    ).post(1, ContentType.APPLICATION_JSON)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 126, in post\r\r\n    self._http_sampler_instance = self.java_wrapped_element.post(\r\r\n  File \"jnius\\jnius_export_class.pxi\", line 1163, in jnius.JavaMultipleMethod.__call__\r\r\njnius.JavaException: No methods called post in us/abstracta/jmeter/javadsl/http/DslHttpSampler matching your arguments, requested: (1, &lt;org.apache.http.entity.ContentType at 0x1faa599b330 jclass=org/apache/http/entity/ContentType jself=&lt;LocalRef obj=0x-5c93be20 at 0x1faa58b6550&gt;&gt;), available: ['(Ljava/lang/String;Lorg/apache/http/entity/ContentType;)Lus/abstracta/jmeter/javadsl/http/DslHttpSampler;', '(Ljava/util/function/Function;Lorg/apache/http/entity/ContentType;)Lus/abstracta/jmeter/javadsl/http/DslHttpSampler;']\r\r\n\r\r\n======================================================================\r\r\nERROR: test_post_http_sampler_str_input (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 50, in test_post_http_sampler_str_input\r\r\n    ).post('{\"name\": \"John Doe\"}', ContentType.APPLICATION_JSON)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 122, in post\r\r\n    raise TypeError(\r\r\nTypeError: Invalid type, expected `list`, 'dict', or 'str'. got &lt;class 'str'&gt;\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_run_positive_flow (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 74, in test_run_positive_flow\r\r\n    self.assertLessEqual(\r\r\nAssertionError: 488 not less than or equal to 443\r\r\n\r\r\n----------------------------------------------------------------------\r\r\nRan 25 tests in 45.195s\r\r\n\r\r\nFAILED (failures=1, errors=2)\r\r\n</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_12\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_12_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_12_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_12_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">12 : Job ID 1a0fb1af6e294eed8d308a673d927a20</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_12_1\" data-parent=\"#job_list___sub_accordion_12\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_12_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\samplers.py&amp;line=144\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\samplers.py, start pos: (144, 11), end pos: (144, 14)</button></a></pre><pre>operator: core/ReplaceUnaryOperator_Delete_Not, occurrence: 1</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\samplers.py\r\n+++ bsrc\\pymeter\\api\\samplers.py\r\n@@ -141,7 +141,7 @@\r\n \r\n             Self: a new sampler instance\r\n         \"\"\"\r\n-        if not isinstance(key, str):\r\n+        if  isinstance(key, str):\r\n             raise TypeError(\"key field must be a string\")\r\n         if not isinstance(value, str):\r\n             raise TypeError(\"value field must be a string\")</pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">Warning: Nashorn engine is planned to be removed from a future JDK release\r\r\n.00:49:19.609 [Thread Group 1-1] ERROR org.apache.jmeter.extractor.json.jmespath.JMESPathExtractor - Error processing JSON content in JSON JMESPath Extractor, message: Unrecognized token 'hi': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')\r\n at [Source: (String)\"hi dummy\"; line: 1, column: 3]\r\r\n =      1 in 00:00:00 =    7.5/s Avg:   349 Min:   349 Max:   349 Err:     0 (0.00%)\r\r\n..EEEF =      1 in 00:00:01 =    1.4/s Avg:   621 Min:   621 Max:   621 Err:     0 (0.00%)\r\r\n.E....... =      0 in 00:00:00 = ******/s Avg:     0 Min: 9223372036854775807 Max: -9223372036854775808 Err:     0 (0.00%)\r\r\n. +     13 in 00:00:01 =   13.9/s Avg:   473 Min:   145 Max:   657 Err:     0 (0.00%) Active: 27 Started: 27 Finished: 0\r\r\n +   3828 in 00:00:20 =  188.7/s Avg:   159 Min:   138 Max:   674 Err:     0 (0.00%) Active: 0 Started: 30 Finished: 30\r\r\n =   3841 in 00:00:21 =  181.0/s Avg:   160 Min:   138 Max:   674 Err:     0 (0.00%)\r\r\nF...... =      1 in 00:00:03 =    0.4/s Avg:   612 Min:   612 Max:   612 Err:     0 (0.00%)\r\r\n.\r\r\n======================================================================\r\r\nERROR: test_http_2_headers (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 90, in test_http_2_headers\r\r\n    .header(\"key1\", \"val1\")\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 145, in header\r\r\n    raise TypeError(\"key field must be a string\")\r\r\nTypeError: key field must be a string\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_duplicated_header (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 105, in test_http_duplicated_header\r\r\n    .header(\"key1\", \"val1\")\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 145, in header\r\r\n    raise TypeError(\"key field must be a string\")\r\r\nTypeError: key field must be a string\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_invalid_header_key (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 119, in test_http_invalid_header_key\r\r\n    ).header(1, \"aa\")\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 148, in header\r\r\n    self._http_sampler_instance = self.java_wrapped_element.header(key, value)\r\r\n  File \"jnius\\jnius_export_class.pxi\", line 1163, in jnius.JavaMultipleMethod.__call__\r\r\njnius.JavaException: No methods called header in us/abstracta/jmeter/javadsl/http/DslHttpSampler matching your arguments, requested: (1, 'aa'), available: ['(Ljava/lang/String;Ljava/util/function/Function;)Lus/abstracta/jmeter/javadsl/http/DslBaseHttpSampler;', '(Ljava/lang/String;Ljava/lang/String;)Lus/abstracta/jmeter/javadsl/http/DslBaseHttpSampler;']\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_valid_header (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 77, in test_http_valid_header\r\r\n    ).header(\"key1\", \"val1\")\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 145, in header\r\r\n    raise TypeError(\"key field must be a string\")\r\r\nTypeError: key field must be a string\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_http_invalid_header_value (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 140, in test_http_invalid_header_value\r\r\n    self.assertEqual(\r\r\nAssertionError: 'key field must be a string' != 'value field must be a string'\r\r\n- key field must be a string\r\r\n? ^ -\r\r\n+ value field must be a string\r\r\n? ^^^^\r\r\n\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_run_positive_flow (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 78, in test_run_positive_flow\r\r\n    self.assertLessEqual(\r\r\nAssertionError: 632 not less than or equal to 611\r\r\n\r\r\n----------------------------------------------------------------------\r\r\nRan 25 tests in 44.790s\r\r\n\r\r\nFAILED (failures=2, errors=4)\r\r\n</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_13\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_13_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_13_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_13_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">13 : Job ID 994e7b4e58694468ba9e16f773c8c907</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_13_1\" data-parent=\"#job_list___sub_accordion_13\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_13_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\samplers.py&amp;line=146\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\samplers.py, start pos: (146, 11), end pos: (146, 14)</button></a></pre><pre>operator: core/ReplaceUnaryOperator_Delete_Not, occurrence: 2</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\samplers.py\r\n+++ bsrc\\pymeter\\api\\samplers.py\r\n@@ -143,7 +143,7 @@\r\n         \"\"\"\r\n         if not isinstance(key, str):\r\n             raise TypeError(\"key field must be a string\")\r\n-        if not isinstance(value, str):\r\n+        if  isinstance(value, str):\r\n             raise TypeError(\"value field must be a string\")\r\n         self._http_sampler_instance = self.java_wrapped_element.header(key, value)\r\n         return self</pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">Warning: Nashorn engine is planned to be removed from a future JDK release\r\r\n +      1 in 00:00:01 =    0.7/s Avg:   994 Min:   994 Max:   994 Err:     0 (0.00%) Active: 1 Started: 1 Finished: 0\r\r\n.00:50:06.335 [Thread Group 1-1] ERROR org.apache.jmeter.extractor.json.jmespath.JMESPathExtractor - Error processing JSON content in JSON JMESPath Extractor, message: Unrecognized token 'hi': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')\r\n at [Source: (String)\"hi dummy\"; line: 1, column: 3]\r\r\n =      1 in 00:00:00 =    9.3/s Avg:    86 Min:    86 Max:    86 Err:     0 (0.00%)\r\r\n..EE.E =      1 in 00:00:01 =    1.5/s Avg:   598 Min:   598 Max:   598 Err:     0 (0.00%)\r\r\n.E....... =      0 in 00:00:00 = ******/s Avg:     0 Min: 9223372036854775807 Max: -9223372036854775808 Err:     0 (0.00%)\r\r\n. +   2530 in 00:00:14 =  176.8/s Avg:   161 Min:   138 Max:   672 Err:     0 (0.00%) Active: 30 Started: 30 Finished: 0\r\r\n +   1340 in 00:00:07 =  194.2/s Avg:   155 Min:   138 Max:   440 Err:     0 (0.00%) Active: 0 Started: 30 Finished: 30\r\r\n =   3870 in 00:00:21 =  182.4/s Avg:   159 Min:   138 Max:   672 Err:     0 (0.00%)\r\r\n....... =      1 in 00:00:03 =    0.4/s Avg:   585 Min:   585 Max:   585 Err:     0 (0.00%)\r\r\n.\r\r\n======================================================================\r\r\nERROR: test_http_2_headers (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 90, in test_http_2_headers\r\r\n    .header(\"key1\", \"val1\")\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 147, in header\r\r\n    raise TypeError(\"value field must be a string\")\r\r\nTypeError: value field must be a string\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_duplicated_header (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 105, in test_http_duplicated_header\r\r\n    .header(\"key1\", \"val1\")\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 147, in header\r\r\n    raise TypeError(\"value field must be a string\")\r\r\nTypeError: value field must be a string\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_invalid_header_value (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 135, in test_http_invalid_header_value\r\r\n    ).header(\"key1\", 1)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 148, in header\r\r\n    self._http_sampler_instance = self.java_wrapped_element.header(key, value)\r\r\n  File \"jnius\\jnius_export_class.pxi\", line 1163, in jnius.JavaMultipleMethod.__call__\r\r\njnius.JavaException: No methods called header in us/abstracta/jmeter/javadsl/http/DslHttpSampler matching your arguments, requested: ('key1', 1), available: ['(Ljava/lang/String;Ljava/lang/String;)Lus/abstracta/jmeter/javadsl/http/DslBaseHttpSampler;', '(Ljava/lang/String;Ljava/util/function/Function;)Lus/abstracta/jmeter/javadsl/http/DslBaseHttpSampler;']\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_valid_header (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 77, in test_http_valid_header\r\r\n    ).header(\"key1\", \"val1\")\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 147, in header\r\r\n    raise TypeError(\"value field must be a string\")\r\r\nTypeError: value field must be a string\r\r\n\r\r\n----------------------------------------------------------------------\r\r\nRan 25 tests in 44.175s\r\r\n\r\r\nFAILED (errors=4)\r\r\n</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_14\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_14_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_14_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_14_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">14 : Job ID 9a6b00b67586487883938a4cc5c77b8c</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_14_1\" data-parent=\"#job_list___sub_accordion_14\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_14_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\samplers.py&amp;line=119\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\samplers.py, start pos: (119, 11), end pos: (119, 41)</button></a></pre><pre>operator: core/AddNot, occurrence: 0</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\samplers.py\r\n+++ bsrc\\pymeter\\api\\samplers.py\r\n@@ -116,7 +116,7 @@\r\n             Self: a new sampler instance\r\n         \"\"\"\r\n \r\n-        if isinstance(body, (dict, list)):\r\n+        if not isinstance(body, (dict, list)):\r\n             body = json.dumps(body)\r\n         elif not isinstance(body, str):\r\n             raise TypeError(</pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">Warning: Nashorn engine is planned to be removed from a future JDK release\r\r\n.00:50:53.197 [Thread Group 1-1] ERROR org.apache.jmeter.extractor.json.jmespath.JMESPathExtractor - Error processing JSON content in JSON JMESPath Extractor, message: Unrecognized token 'hi': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')\r\n at [Source: (String)\"hi dummy\"; line: 1, column: 3]\r\r\n =      1 in 00:00:00 =   11.0/s Avg:    86 Min:    86 Max:    86 Err:     0 (0.00%)\r\r\n...... +      1 in 00:00:01 =    1.4/s Avg:   637 Min:   637 Max:   637 Err:     0 (0.00%) Active: 1 Started: 1 Finished: 0\r\r\n =      1 in 00:00:01 =    1.4/s Avg:   637 Min:   637 Max:   637 Err:     0 (0.00%)\r\r\n..EFE.... =      0 in 00:00:00 = ******/s Avg:     0 Min: 9223372036854775807 Max: -9223372036854775808 Err:     0 (0.00%)\r\r\n. +      1 in 00:00:01 =    1.5/s Avg:   624 Min:   624 Max:   624 Err:     0 (0.00%) Active: 20 Started: 20 Finished: 0\r\r\n +   3794 in 00:00:21 =  184.6/s Avg:   162 Min:   142 Max:   678 Err:     0 (0.00%) Active: 0 Started: 30 Finished: 30\r\r\n =   3795 in 00:00:21 =  178.8/s Avg:   162 Min:   142 Max:   678 Err:     0 (0.00%)\r\r\nF...... =      1 in 00:00:03 =    0.4/s Avg:   656 Min:   656 Max:   656 Err:     0 (0.00%)\r\r\n.\r\r\n======================================================================\r\r\nERROR: test_post_http_sampler_dict_input (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 28, in test_post_http_sampler_dict_input\r\r\n    ).post({\"var1\": 1}, ContentType.APPLICATION_JSON)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 122, in post\r\r\n    raise TypeError(\r\r\nTypeError: Invalid type, expected `list`, 'dict', or 'str'. got &lt;class 'dict'&gt;\r\r\n\r\r\n======================================================================\r\r\nERROR: test_post_http_sampler_list_input (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 39, in test_post_http_sampler_list_input\r\r\n    ).post([1, 2, 3, 4], ContentType.APPLICATION_JSON)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 122, in post\r\r\n    raise TypeError(\r\r\nTypeError: Invalid type, expected `list`, 'dict', or 'str'. got &lt;class 'list'&gt;\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_post_http_sampler_int_input (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 58, in test_post_http_sampler_int_input\r\r\n    with self.assertRaises(TypeError) as exp:\r\r\nAssertionError: TypeError not raised\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_run_positive_flow (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 74, in test_run_positive_flow\r\r\n    self.assertLessEqual(\r\r\nAssertionError: 436 not less than or equal to 187\r\r\n\r\r\n----------------------------------------------------------------------\r\r\nRan 25 tests in 45.290s\r\r\n\r\r\nFAILED (failures=2, errors=2)\r\r\n</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_15\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_15_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_15_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_15_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">15 : Job ID f34db18fc7984055badbce3a15115605</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_15_1\" data-parent=\"#job_list___sub_accordion_15\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_15_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\samplers.py&amp;line=144\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\samplers.py, start pos: (144, 11), end pos: (144, 35)</button></a></pre><pre>operator: core/AddNot, occurrence: 1</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\samplers.py\r\n+++ bsrc\\pymeter\\api\\samplers.py\r\n@@ -141,7 +141,7 @@\r\n \r\n             Self: a new sampler instance\r\n         \"\"\"\r\n-        if not isinstance(key, str):\r\n+        if not not isinstance(key, str):\r\n             raise TypeError(\"key field must be a string\")\r\n         if not isinstance(value, str):\r\n             raise TypeError(\"value field must be a string\")</pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">Warning: Nashorn engine is planned to be removed from a future JDK release\r\r\n.00:51:40.753 [Thread Group 1-1] ERROR org.apache.jmeter.extractor.json.jmespath.JMESPathExtractor - Error processing JSON content in JSON JMESPath Extractor, message: Unrecognized token 'hi': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')\r\n at [Source: (String)\"hi dummy\"; line: 1, column: 3]\r\r\n =      1 in 00:00:00 =   11.9/s Avg:   272 Min:   272 Max:   272 Err:     0 (0.00%)\r\r\n..EEEF =      1 in 00:00:01 =    1.4/s Avg:   651 Min:   651 Max:   651 Err:     0 (0.00%)\r\r\n.E....... =      0 in 00:00:00 = ******/s Avg:     0 Min: 9223372036854775807 Max: -9223372036854775808 Err:     0 (0.00%)\r\r\n. +   1630 in 00:00:10 =  169.4/s Avg:   162 Min:   138 Max:   699 Err:     0 (0.00%) Active: 30 Started: 30 Finished: 0\r\r\n +   2244 in 00:00:12 =  193.3/s Avg:   156 Min:   138 Max:   443 Err:     0 (0.00%) Active: 0 Started: 30 Finished: 30\r\r\n =   3874 in 00:00:21 =  182.4/s Avg:   159 Min:   138 Max:   699 Err:     0 (0.00%)\r\r\nF...... =      1 in 00:00:03 =    0.4/s Avg:   685 Min:   685 Max:   685 Err:     0 (0.00%)\r\r\n.\r\r\n======================================================================\r\r\nERROR: test_http_2_headers (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 90, in test_http_2_headers\r\r\n    .header(\"key1\", \"val1\")\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 145, in header\r\r\n    raise TypeError(\"key field must be a string\")\r\r\nTypeError: key field must be a string\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_duplicated_header (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 105, in test_http_duplicated_header\r\r\n    .header(\"key1\", \"val1\")\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 145, in header\r\r\n    raise TypeError(\"key field must be a string\")\r\r\nTypeError: key field must be a string\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_invalid_header_key (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 119, in test_http_invalid_header_key\r\r\n    ).header(1, \"aa\")\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 148, in header\r\r\n    self._http_sampler_instance = self.java_wrapped_element.header(key, value)\r\r\n  File \"jnius\\jnius_export_class.pxi\", line 1163, in jnius.JavaMultipleMethod.__call__\r\r\njnius.JavaException: No methods called header in us/abstracta/jmeter/javadsl/http/DslHttpSampler matching your arguments, requested: (1, 'aa'), available: ['(Ljava/lang/String;Ljava/util/function/Function;)Lus/abstracta/jmeter/javadsl/http/DslBaseHttpSampler;', '(Ljava/lang/String;Ljava/lang/String;)Lus/abstracta/jmeter/javadsl/http/DslBaseHttpSampler;']\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_valid_header (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 77, in test_http_valid_header\r\r\n    ).header(\"key1\", \"val1\")\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 145, in header\r\r\n    raise TypeError(\"key field must be a string\")\r\r\nTypeError: key field must be a string\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_http_invalid_header_value (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 140, in test_http_invalid_header_value\r\r\n    self.assertEqual(\r\r\nAssertionError: 'key field must be a string' != 'value field must be a string'\r\r\n- key field must be a string\r\r\n? ^ -\r\r\n+ value field must be a string\r\r\n? ^^^^\r\r\n\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_run_positive_flow (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 74, in test_run_positive_flow\r\r\n    self.assertLessEqual(\r\r\nAssertionError: 332 not less than or equal to 175\r\r\n\r\r\n----------------------------------------------------------------------\r\r\nRan 25 tests in 45.285s\r\r\n\r\r\nFAILED (failures=2, errors=4)\r\r\n</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_16\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_16_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_16_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_16_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">16 : Job ID 5d24679fd3634736ab1599a79cd0c1b9</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_16_1\" data-parent=\"#job_list___sub_accordion_16\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_16_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\samplers.py&amp;line=146\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\samplers.py, start pos: (146, 11), end pos: (146, 37)</button></a></pre><pre>operator: core/AddNot, occurrence: 2</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\samplers.py\r\n+++ bsrc\\pymeter\\api\\samplers.py\r\n@@ -143,7 +143,7 @@\r\n         \"\"\"\r\n         if not isinstance(key, str):\r\n             raise TypeError(\"key field must be a string\")\r\n-        if not isinstance(value, str):\r\n+        if not not isinstance(value, str):\r\n             raise TypeError(\"value field must be a string\")\r\n         self._http_sampler_instance = self.java_wrapped_element.header(key, value)\r\n         return self</pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">Warning: Nashorn engine is planned to be removed from a future JDK release\r\r\n.00:52:27.491 [Thread Group 1-1] ERROR org.apache.jmeter.extractor.json.jmespath.JMESPathExtractor - Error processing JSON content in JSON JMESPath Extractor, message: Unrecognized token 'hi': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')\r\n at [Source: (String)\"hi dummy\"; line: 1, column: 3]\r\r\n =      1 in 00:00:00 =    9.5/s Avg:   276 Min:   276 Max:   276 Err:     0 (0.00%)\r\r\n. +      5 in 00:00:01 =    4.0/s Avg:   355 Min:   167 Max:   690 Err:     0 (0.00%) Active: 2 Started: 2 Finished: 0\r\r\n.EE.E +      1 in 00:00:01 =    1.4/s Avg:   658 Min:   658 Max:   658 Err:     0 (0.00%) Active: 1 Started: 1 Finished: 0\r\r\n =      1 in 00:00:01 =    1.4/s Avg:   658 Min:   658 Max:   658 Err:     0 (0.00%)\r\r\n.E....... =      0 in 00:00:00 = ******/s Avg:     0 Min: 9223372036854775807 Max: -9223372036854775808 Err:     0 (0.00%)\r\r\n. =   3855 in 00:00:21 =  181.2/s Avg:   159 Min:   139 Max:   815 Err:     0 (0.00%)\r\r\nF...... +      1 in 00:00:03 =    0.4/s Avg:   665 Min:   665 Max:   665 Err:     0 (0.00%) Active: 1 Started: 1 Finished: 0\r\r\n =      1 in 00:00:03 =    0.4/s Avg:   665 Min:   665 Max:   665 Err:     0 (0.00%)\r\r\n.\r\r\n======================================================================\r\r\nERROR: test_http_2_headers (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 90, in test_http_2_headers\r\r\n    .header(\"key1\", \"val1\")\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 147, in header\r\r\n    raise TypeError(\"value field must be a string\")\r\r\nTypeError: value field must be a string\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_duplicated_header (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 105, in test_http_duplicated_header\r\r\n    .header(\"key1\", \"val1\")\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 147, in header\r\r\n    raise TypeError(\"value field must be a string\")\r\r\nTypeError: value field must be a string\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_invalid_header_value (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 135, in test_http_invalid_header_value\r\r\n    ).header(\"key1\", 1)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 148, in header\r\r\n    self._http_sampler_instance = self.java_wrapped_element.header(key, value)\r\r\n  File \"jnius\\jnius_export_class.pxi\", line 1163, in jnius.JavaMultipleMethod.__call__\r\r\njnius.JavaException: No methods called header in us/abstracta/jmeter/javadsl/http/DslHttpSampler matching your arguments, requested: ('key1', 1), available: ['(Ljava/lang/String;Ljava/util/function/Function;)Lus/abstracta/jmeter/javadsl/http/DslBaseHttpSampler;', '(Ljava/lang/String;Ljava/lang/String;)Lus/abstracta/jmeter/javadsl/http/DslBaseHttpSampler;']\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_valid_header (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 77, in test_http_valid_header\r\r\n    ).header(\"key1\", \"val1\")\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 147, in header\r\r\n    raise TypeError(\"value field must be a string\")\r\r\nTypeError: value field must be a string\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_run_positive_flow (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 74, in test_run_positive_flow\r\r\n    self.assertLessEqual(\r\r\nAssertionError: 571 not less than or equal to 196\r\r\n\r\r\n----------------------------------------------------------------------\r\r\nRan 25 tests in 44.782s\r\r\n\r\r\nFAILED (failures=1, errors=4)\r\r\n</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_17\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_17_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_17_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_17_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">17 : Job ID 14961a05d9644592af096c9f7662fb51</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_17_1\" data-parent=\"#job_list___sub_accordion_17\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_17_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\samplers.py&amp;line=58\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\samplers.py, start pos: (58, 7), end pos: (58, 18)</button></a></pre><pre>operator: core/ExceptionReplacer, occurrence: 0</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\samplers.py\r\n+++ bsrc\\pymeter\\api\\samplers.py\r\n@@ -55,7 +55,7 @@\r\n \r\n try:\r\n     from typing import Self\r\n-except ImportError:\r\n+except CosmicRayTestingException:\r\n     from typing_extensions import Self\r\n from pymeter.api import ThreadGroupChildElement, ContentType\r\n </pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">EEEEEE\r\r\n======================================================================\r\r\nERROR: utests.test_postprocessors (unittest.loader._FailedTest)\r\r\n----------------------------------------------------------------------\r\r\nImportError: Failed to import test module: utests.test_postprocessors\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 57, in &lt;module&gt;\r\r\n    from typing import Self\r\r\nImportError: cannot import name 'Self' from 'typing' (C:\\Python310\\lib\\typing.py)\r\r\n\r\r\nDuring handling of the above exception, another exception occurred:\r\r\n\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\Python310\\lib\\unittest\\loader.py\", line 436, in _find_test_path\r\r\n    module = self._get_module_from_name(name)\r\r\n  File \"C:\\Python310\\lib\\unittest\\loader.py\", line 377, in _get_module_from_name\r\r\n    __import__(name)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_postprocessors.py\", line 8, in &lt;module&gt;\r\r\n    from pymeter.api.samplers import DummySampler, HttpSampler\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 58, in &lt;module&gt;\r\r\n    except CosmicRayTestingException:\r\r\nNameError: name 'CosmicRayTestingException' is not defined\r\r\n\r\r\n\r\r\n======================================================================\r\r\nERROR: utests.test_reporter (unittest.loader._FailedTest)\r\r\n----------------------------------------------------------------------\r\r\nImportError: Failed to import test module: utests.test_reporter\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 57, in &lt;module&gt;\r\r\n    from typing import Self\r\r\nImportError: cannot import name 'Self' from 'typing' (C:\\Python310\\lib\\typing.py)\r\r\n\r\r\nDuring handling of the above exception, another exception occurred:\r\r\n\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\Python310\\lib\\unittest\\loader.py\", line 436, in _find_test_path\r\r\n    module = self._get_module_from_name(name)\r\r\n  File \"C:\\Python310\\lib\\unittest\\loader.py\", line 377, in _get_module_from_name\r\r\n    __import__(name)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_reporter.py\", line 8, in &lt;module&gt;\r\r\n    from pymeter.api.samplers import HttpSampler\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 58, in &lt;module&gt;\r\r\n    except CosmicRayTestingException:\r\r\nNameError: name 'CosmicRayTestingException' is not defined\r\r\n\r\r\n\r\r\n======================================================================\r\r\nERROR: utests.test_sampler (unittest.loader._FailedTest)\r\r\n----------------------------------------------------------------------\r\r\nImportError: Failed to import test module: utests.test_sampler\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 57, in &lt;module&gt;\r\r\n    from typing import Self\r\r\nImportError: cannot import name 'Self' from 'typing' (C:\\Python310\\lib\\typing.py)\r\r\n\r\r\nDuring handling of the above exception, another exception occurred:\r\r\n\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\Python310\\lib\\unittest\\loader.py\", line 436, in _find_test_path\r\r\n    module = self._get_module_from_name(name)\r\r\n  File \"C:\\Python310\\lib\\unittest\\loader.py\", line 377, in _get_module_from_name\r\r\n    __import__(name)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 5, in &lt;module&gt;\r\r\n    from pymeter.api.samplers import HttpSampler\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 58, in &lt;module&gt;\r\r\n    except CosmicRayTestingException:\r\r\nNameError: name 'CosmicRayTestingException' is not defined\r\r\n\r\r\n\r\r\n======================================================================\r\r\nERROR: utests.test_test_plan (unittest.loader._FailedTest)\r\r\n----------------------------------------------------------------------\r\r\nImportError: Failed to import test module: utests.test_test_plan\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 57, in &lt;module&gt;\r\r\n    from typing import Self\r\r\nImportError: cannot import name 'Self' from 'typing' (C:\\Python310\\lib\\typing.py)\r\r\n\r\r\nDuring handling of the above exception, another exception occurred:\r\r\n\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\Python310\\lib\\unittest\\loader.py\", line 436, in _find_test_path\r\r\n    module = self._get_module_from_name(name)\r\r\n  File \"C:\\Python310\\lib\\unittest\\loader.py\", line 377, in _get_module_from_name\r\r\n    __import__(name)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 14, in &lt;module&gt;\r\r\n    from pymeter.api.samplers import DummySampler, HttpSampler\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 58, in &lt;module&gt;\r\r\n    except CosmicRayTestingException:\r\r\nNameError: name 'CosmicRayTestingException' is not defined\r\r\n\r\r\n\r\r\n======================================================================\r\r\nERROR: utests.test_thread_group (unittest.loader._FailedTest)\r\r\n----------------------------------------------------------------------\r\r\nImportError: Failed to import test module: utests.test_thread_group\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 57, in &lt;module&gt;\r\r\n    from typing import Self\r\r\nImportError: cannot import name 'Self' from 'typing' (C:\\Python310\\lib\\typing.py)\r\r\n\r\r\nDuring handling of the above exception, another exception occurred:\r\r\n\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\Python310\\lib\\unittest\\loader.py\", line 436, in _find_test_path\r\r\n    module = self._get_module_from_name(name)\r\r\n  File \"C:\\Python310\\lib\\unittest\\loader.py\", line 377, in _get_module_from_name\r\r\n    __import__(name)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 6, in &lt;module&gt;\r\r\n    from pymeter.api.samplers import HttpSampler\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 58, in &lt;module&gt;\r\r\n    except CosmicRayTestingException:\r\r\nNameError: name 'CosmicRayTestingException' is not defined\r\r\n\r\r\n\r\r\n======================================================================\r\r\nERROR: utests.test_timers (unittest.loader._FailedTest)\r\r\n----------------------------------------------------------------------\r\r\nImportError: Failed to import test module: utests.test_timers\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 57, in &lt;module&gt;\r\r\n    from typing import Self\r\r\nImportError: cannot import name 'Self' from 'typing' (C:\\Python310\\lib\\typing.py)\r\r\n\r\r\nDuring handling of the above exception, another exception occurred:\r\r\n\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\Python310\\lib\\unittest\\loader.py\", line 436, in _find_test_path\r\r\n    module = self._get_module_from_name(name)\r\r\n  File \"C:\\Python310\\lib\\unittest\\loader.py\", line 377, in _get_module_from_name\r\r\n    __import__(name)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_timers.py\", line 4, in &lt;module&gt;\r\r\n    from pymeter.api.samplers import HttpSampler\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 58, in &lt;module&gt;\r\r\n    except CosmicRayTestingException:\r\r\nNameError: name 'CosmicRayTestingException' is not defined\r\r\n\r\r\n\r\r\n----------------------------------------------------------------------\r\r\nRan 6 tests in 0.001s\r\r\n\r\r\nFAILED (errors=6)\r\r\n</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_18\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_18_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_18_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_18_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">18 : Job ID d8760e990dc84c7dabdc26e228df1ee9</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_18_1\" data-parent=\"#job_list___sub_accordion_18\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_18_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\config.py&amp;line=151\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\config.py, start pos: (151, 11), end pos: (151, 14)</button></a></pre><pre>operator: core/ReplaceUnaryOperator_Delete_Not, occurrence: 0</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\config.py\r\n+++ bsrc\\pymeter\\api\\config.py\r\n@@ -148,7 +148,7 @@\r\n             return self.java_wrapped_element.duration().toMillis()\r\n \r\n     def __init__(self, *children: TestPlanChildElement) -&gt; None:\r\n-        if not all(isinstance(c, TestPlanChildElement) for c in children):\r\n+        if  all(isinstance(c, TestPlanChildElement) for c in children):\r\n             raise TypeError(\"only takes children of type `TestPlanChildElement`\")\r\n         self._test_plan_instance = BaseConfigElement.jmeter_class.testPlan()\r\n         if children:</pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">EEE....E.....EEEEEE.....E\r\r\n======================================================================\r\r\nERROR: test_http_sampler (utests.test_postprocessors.TestSampler)\r\r\nsend request to postman echo\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_postprocessors.py\", line 24, in test_http_sampler\r\r\n    test_plan = TestPlan(tg1, html_reporter)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 152, in __init__\r\r\n    raise TypeError(\"only takes children of type `TestPlanChildElement`\")\r\r\nTypeError: only takes children of type `TestPlanChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_postprocessor_on_thread_group (utests.test_postprocessors.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_postprocessors.py\", line 42, in test_postprocessor_on_thread_group\r\r\n    test_plan = TestPlan(tg1)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 152, in __init__\r\r\n    raise TypeError(\"only takes children of type `TestPlanChildElement`\")\r\r\nTypeError: only takes children of type `TestPlanChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_sampler (utests.test_reporter.TestReporter)\r\r\ncreate an HTML report\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_reporter.py\", line 20, in test_http_sampler\r\r\n    tp = TestPlan(tg, html_reporter)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 152, in __init__\r\r\n    raise TypeError(\"only takes children of type `TestPlanChildElement`\")\r\r\nTypeError: only takes children of type `TestPlanChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_sampler (utests.test_sampler.TestSampler)\r\r\nsend request to postman echo\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 16, in test_http_sampler\r\r\n    test_plan = TestPlan(tg1)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 152, in __init__\r\r\n    raise TypeError(\"only takes children of type `TestPlanChildElement`\")\r\r\nTypeError: only takes children of type `TestPlanChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_empty_test_plan (utests.test_test_plan.TestTestPlanClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 22, in test_creation_of_empty_test_plan\r\r\n    python_test_plan_object = TestPlan()\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 152, in __init__\r\r\n    raise TypeError(\"only takes children of type `TestPlanChildElement`\")\r\r\nTypeError: only takes children of type `TestPlanChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_test_plan_with_invalid_children (utests.test_test_plan.TestTestPlanClass)\r\r\nChildren must be of type TestPlanChildElement,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 43, in test_creation_of_test_plan_with_invalid_children\r\r\n    test_plan = TestPlan(1, \"aaa\")\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 156, in __init__\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 156, in &lt;listcomp&gt;\r\r\n    *[c.java_wrapped_element for c in children]\r\r\nAttributeError: 'int' object has no attribute 'java_wrapped_element'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_test_plan_with_valid_children (utests.test_test_plan.TestTestPlanClass)\r\r\nWhen children are passed through,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 33, in test_creation_of_test_plan_with_valid_children\r\r\n    test_plan = TestPlan(tg1, tg2)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 152, in __init__\r\r\n    raise TypeError(\"only takes children of type `TestPlanChildElement`\")\r\r\nTypeError: only takes children of type `TestPlanChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_run_empty_flow (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 90, in test_run_empty_flow\r\r\n    test_plan = TestPlan(tg1)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 152, in __init__\r\r\n    raise TypeError(\"only takes children of type `TestPlanChildElement`\")\r\r\nTypeError: only takes children of type `TestPlanChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_run_positive_flow (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 57, in test_run_positive_flow\r\r\n    test_plan = TestPlan(tg1)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 152, in __init__\r\r\n    raise TypeError(\"only takes children of type `TestPlanChildElement`\")\r\r\nTypeError: only takes children of type `TestPlanChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_run_validate_order (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 104, in test_run_validate_order\r\r\n    test_plan = TestPlan(tg_setup, tg_main, tg_teardown, html_reporter)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 152, in __init__\r\r\n    raise TypeError(\"only takes children of type `TestPlanChildElement`\")\r\r\nTypeError: only takes children of type `TestPlanChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_uniform_random_timer (utests.test_timers.TestTimer)\r\r\nWhen the minimal time is 5000 milliseconds,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_timers.py\", line 17, in test_uniform_random_timer\r\r\n    test_plan = TestPlan(tg1)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 152, in __init__\r\r\n    raise TypeError(\"only takes children of type `TestPlanChildElement`\")\r\r\nTypeError: only takes children of type `TestPlanChildElement`\r\r\n\r\r\n----------------------------------------------------------------------\r\r\nRan 25 tests in 1.403s\r\r\n\r\r\nFAILED (errors=11)\r\r\n</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_19\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_19_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_19_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_19_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">19 : Job ID 6142c5e0c9a446a6b8900f7c2891a835</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_19_1\" data-parent=\"#job_list___sub_accordion_19\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_19_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\config.py&amp;line=180\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\config.py, start pos: (180, 11), end pos: (180, 14)</button></a></pre><pre>operator: core/ReplaceUnaryOperator_Delete_Not, occurrence: 1</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\config.py\r\n+++ bsrc\\pymeter\\api\\config.py\r\n@@ -177,7 +177,7 @@\r\n     \"\"\"base class for all thread groups\"\"\"\r\n \r\n     def __init__(self, *children: ThreadGroupChildElement) -&gt; None:\r\n-        if not all(isinstance(c, ThreadGroupChildElement) for c in children):\r\n+        if  all(isinstance(c, ThreadGroupChildElement) for c in children):\r\n             raise TypeError(\"only takes children of type `ThreadGroupChildElement`\")\r\n         super().__init__()\r\n </pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">EEE....E.......EEEEEEEEEE\r\r\n======================================================================\r\r\nERROR: test_http_sampler (utests.test_postprocessors.TestSampler)\r\r\nsend request to postman echo\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_postprocessors.py\", line 21, in test_http_sampler\r\r\n    tg1 = ThreadGroupSimple(1, 1, http_sampler, dummy_sampler)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 228, in __init__\r\r\n    super().__init__(*children)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 181, in __init__\r\r\n    raise TypeError(\"only takes children of type `ThreadGroupChildElement`\")\r\r\nTypeError: only takes children of type `ThreadGroupChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_postprocessor_on_thread_group (utests.test_postprocessors.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_postprocessors.py\", line 41, in test_postprocessor_on_thread_group\r\r\n    tg1 = ThreadGroupSimple(1, 1, dummy_sampler, json_extractor)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 228, in __init__\r\r\n    super().__init__(*children)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 181, in __init__\r\r\n    raise TypeError(\"only takes children of type `ThreadGroupChildElement`\")\r\r\nTypeError: only takes children of type `ThreadGroupChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_sampler (utests.test_reporter.TestReporter)\r\r\ncreate an HTML report\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_reporter.py\", line 17, in test_http_sampler\r\r\n    tg = ThreadGroupWithRampUpAndHold(2, 1, 2, http_sampler, name=\"Some Name\")\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 249, in __init__\r\r\n    super().__init__(*children)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 181, in __init__\r\r\n    raise TypeError(\"only takes children of type `ThreadGroupChildElement`\")\r\r\nTypeError: only takes children of type `ThreadGroupChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_sampler (utests.test_sampler.TestSampler)\r\r\nsend request to postman echo\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 15, in test_http_sampler\r\r\n    tg1 = ThreadGroupSimple(1, 1, http_sampler)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 228, in __init__\r\r\n    super().__init__(*children)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 181, in __init__\r\r\n    raise TypeError(\"only takes children of type `ThreadGroupChildElement`\")\r\r\nTypeError: only takes children of type `ThreadGroupChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_test_plan_with_valid_children (utests.test_test_plan.TestTestPlanClass)\r\r\nWhen children are passed through,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 31, in test_creation_of_test_plan_with_valid_children\r\r\n    tg1 = ThreadGroupWithRampUpAndHold(10, 10, 10)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 249, in __init__\r\r\n    super().__init__(*children)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 181, in __init__\r\r\n    raise TypeError(\"only takes children of type `ThreadGroupChildElement`\")\r\r\nTypeError: only takes children of type `ThreadGroupChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_run_empty_flow (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 89, in test_run_empty_flow\r\r\n    tg1 = ThreadGroupWithRampUpAndHold(1, 1, 1)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 249, in __init__\r\r\n    super().__init__(*children)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 181, in __init__\r\r\n    raise TypeError(\"only takes children of type `ThreadGroupChildElement`\")\r\r\nTypeError: only takes children of type `ThreadGroupChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_run_positive_flow (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 56, in test_run_positive_flow\r\r\n    tg1 = ThreadGroupWithRampUpAndHold(30, 1, 20, http_sampler)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 249, in __init__\r\r\n    super().__init__(*children)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 181, in __init__\r\r\n    raise TypeError(\"only takes children of type `ThreadGroupChildElement`\")\r\r\nTypeError: only takes children of type `ThreadGroupChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_run_validate_order (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 99, in test_run_validate_order\r\r\n    tg_setup = SetupThreadGroup(dummy_sampler_for_setup)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 190, in __init__\r\r\n    super().__init__(*children)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 181, in __init__\r\r\n    raise TypeError(\"only takes children of type `ThreadGroupChildElement`\")\r\r\nTypeError: only takes children of type `ThreadGroupChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_empty_setup_thread_group (utests.test_thread_group.TestThreadGroupClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 22, in test_creation_of_empty_setup_thread_group\r\r\n    python_thread_group_object = SetupThreadGroup()\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 190, in __init__\r\r\n    super().__init__(*children)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 181, in __init__\r\r\n    raise TypeError(\"only takes children of type `ThreadGroupChildElement`\")\r\r\nTypeError: only takes children of type `ThreadGroupChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_empty_teardown_thread_group (utests.test_thread_group.TestThreadGroupClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 30, in test_creation_of_empty_teardown_thread_group\r\r\n    python_thread_group_object = TeardownThreadGroup()\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 205, in __init__\r\r\n    super().__init__(*children)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 181, in __init__\r\r\n    raise TypeError(\"only takes children of type `ThreadGroupChildElement`\")\r\r\nTypeError: only takes children of type `ThreadGroupChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_empty_thread_group (utests.test_thread_group.TestThreadGroupClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 14, in test_creation_of_empty_thread_group\r\r\n    python_thread_group_object = ThreadGroupWithRampUpAndHold(1, 1, 1)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 249, in __init__\r\r\n    super().__init__(*children)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 181, in __init__\r\r\n    raise TypeError(\"only takes children of type `ThreadGroupChildElement`\")\r\r\nTypeError: only takes children of type `ThreadGroupChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_thread_group_with_invalid_children (utests.test_thread_group.TestThreadGroupClass)\r\r\nChildren must be of type ThreadGroupChildElement,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 50, in test_creation_of_thread_group_with_invalid_children\r\r\n    python_thread_group_object = ThreadGroupWithRampUpAndHold(\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 262, in __init__\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 262, in &lt;listcomp&gt;\r\r\n    *[c.java_wrapped_element for c in children]\r\r\nAttributeError: 'str' object has no attribute 'java_wrapped_element'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_thread_group_with_valid_children (utests.test_thread_group.TestThreadGroupClass)\r\r\nWhen children are passed through,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 40, in test_creation_of_thread_group_with_valid_children\r\r\n    python_thread_group_object = ThreadGroupWithRampUpAndHold(1, 1, 1, http_sampler)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 249, in __init__\r\r\n    super().__init__(*children)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 181, in __init__\r\r\n    raise TypeError(\"only takes children of type `ThreadGroupChildElement`\")\r\r\nTypeError: only takes children of type `ThreadGroupChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_uniform_random_timer (utests.test_timers.TestTimer)\r\r\nWhen the minimal time is 5000 milliseconds,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_timers.py\", line 16, in test_uniform_random_timer\r\r\n    tg1 = ThreadGroupSimple(1, 1, http_sampler)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 228, in __init__\r\r\n    super().__init__(*children)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 181, in __init__\r\r\n    raise TypeError(\"only takes children of type `ThreadGroupChildElement`\")\r\r\nTypeError: only takes children of type `ThreadGroupChildElement`\r\r\n\r\r\n----------------------------------------------------------------------\r\r\nRan 25 tests in 1.028s\r\r\n\r\r\nFAILED (errors=14)\r\r\n</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_20\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_20_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_20_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_20_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">20 : Job ID d6d813447e0344f782b08be8803ae1b7</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_20_1\" data-parent=\"#job_list___sub_accordion_20\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_20_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\config.py&amp;line=151\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\config.py, start pos: (151, 11), end pos: (151, 73)</button></a></pre><pre>operator: core/AddNot, occurrence: 0</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\config.py\r\n+++ bsrc\\pymeter\\api\\config.py\r\n@@ -148,7 +148,7 @@\r\n             return self.java_wrapped_element.duration().toMillis()\r\n \r\n     def __init__(self, *children: TestPlanChildElement) -&gt; None:\r\n-        if not all(isinstance(c, TestPlanChildElement) for c in children):\r\n+        if not not all(isinstance(c, TestPlanChildElement) for c in children):\r\n             raise TypeError(\"only takes children of type `TestPlanChildElement`\")\r\n         self._test_plan_instance = BaseConfigElement.jmeter_class.testPlan()\r\n         if children:</pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">EEE....E.....EEEEEE.....E\r\r\n======================================================================\r\r\nERROR: test_http_sampler (utests.test_postprocessors.TestSampler)\r\r\nsend request to postman echo\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_postprocessors.py\", line 24, in test_http_sampler\r\r\n    test_plan = TestPlan(tg1, html_reporter)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 152, in __init__\r\r\n    raise TypeError(\"only takes children of type `TestPlanChildElement`\")\r\r\nTypeError: only takes children of type `TestPlanChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_postprocessor_on_thread_group (utests.test_postprocessors.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_postprocessors.py\", line 42, in test_postprocessor_on_thread_group\r\r\n    test_plan = TestPlan(tg1)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 152, in __init__\r\r\n    raise TypeError(\"only takes children of type `TestPlanChildElement`\")\r\r\nTypeError: only takes children of type `TestPlanChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_sampler (utests.test_reporter.TestReporter)\r\r\ncreate an HTML report\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_reporter.py\", line 20, in test_http_sampler\r\r\n    tp = TestPlan(tg, html_reporter)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 152, in __init__\r\r\n    raise TypeError(\"only takes children of type `TestPlanChildElement`\")\r\r\nTypeError: only takes children of type `TestPlanChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_sampler (utests.test_sampler.TestSampler)\r\r\nsend request to postman echo\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 16, in test_http_sampler\r\r\n    test_plan = TestPlan(tg1)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 152, in __init__\r\r\n    raise TypeError(\"only takes children of type `TestPlanChildElement`\")\r\r\nTypeError: only takes children of type `TestPlanChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_empty_test_plan (utests.test_test_plan.TestTestPlanClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 22, in test_creation_of_empty_test_plan\r\r\n    python_test_plan_object = TestPlan()\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 152, in __init__\r\r\n    raise TypeError(\"only takes children of type `TestPlanChildElement`\")\r\r\nTypeError: only takes children of type `TestPlanChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_test_plan_with_invalid_children (utests.test_test_plan.TestTestPlanClass)\r\r\nChildren must be of type TestPlanChildElement,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 43, in test_creation_of_test_plan_with_invalid_children\r\r\n    test_plan = TestPlan(1, \"aaa\")\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 156, in __init__\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 156, in &lt;listcomp&gt;\r\r\n    *[c.java_wrapped_element for c in children]\r\r\nAttributeError: 'int' object has no attribute 'java_wrapped_element'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_test_plan_with_valid_children (utests.test_test_plan.TestTestPlanClass)\r\r\nWhen children are passed through,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 33, in test_creation_of_test_plan_with_valid_children\r\r\n    test_plan = TestPlan(tg1, tg2)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 152, in __init__\r\r\n    raise TypeError(\"only takes children of type `TestPlanChildElement`\")\r\r\nTypeError: only takes children of type `TestPlanChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_run_empty_flow (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 90, in test_run_empty_flow\r\r\n    test_plan = TestPlan(tg1)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 152, in __init__\r\r\n    raise TypeError(\"only takes children of type `TestPlanChildElement`\")\r\r\nTypeError: only takes children of type `TestPlanChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_run_positive_flow (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 57, in test_run_positive_flow\r\r\n    test_plan = TestPlan(tg1)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 152, in __init__\r\r\n    raise TypeError(\"only takes children of type `TestPlanChildElement`\")\r\r\nTypeError: only takes children of type `TestPlanChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_run_validate_order (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 104, in test_run_validate_order\r\r\n    test_plan = TestPlan(tg_setup, tg_main, tg_teardown, html_reporter)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 152, in __init__\r\r\n    raise TypeError(\"only takes children of type `TestPlanChildElement`\")\r\r\nTypeError: only takes children of type `TestPlanChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_uniform_random_timer (utests.test_timers.TestTimer)\r\r\nWhen the minimal time is 5000 milliseconds,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_timers.py\", line 17, in test_uniform_random_timer\r\r\n    test_plan = TestPlan(tg1)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 152, in __init__\r\r\n    raise TypeError(\"only takes children of type `TestPlanChildElement`\")\r\r\nTypeError: only takes children of type `TestPlanChildElement`\r\r\n\r\r\n----------------------------------------------------------------------\r\r\nRan 25 tests in 1.082s\r\r\n\r\r\nFAILED (errors=11)\r\r\n</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_21\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_21_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_21_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_21_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">21 : Job ID 65ba402a2d4047dbbfb3b76ce9fc8f58</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_21_1\" data-parent=\"#job_list___sub_accordion_21\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_21_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\config.py&amp;line=154\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\config.py, start pos: (154, 11), end pos: (154, 19)</button></a></pre><pre>operator: core/AddNot, occurrence: 1</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\config.py\r\n+++ bsrc\\pymeter\\api\\config.py\r\n@@ -151,7 +151,7 @@\r\n         if not all(isinstance(c, TestPlanChildElement) for c in children):\r\n             raise TypeError(\"only takes children of type `TestPlanChildElement`\")\r\n         self._test_plan_instance = BaseConfigElement.jmeter_class.testPlan()\r\n-        if children:\r\n+        if not children:\r\n             self._test_plan_instance.children(\r\n                 *[c.java_wrapped_element for c in children]\r\n             )</pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">Warning: Nashorn engine is planned to be removed from a future JDK release\r\r\n =      0 in 00:00:00 = ******/s Avg:     0 Min: 9223372036854775807 Max: -9223372036854775808 Err:     0 (0.00%)\r\r\nE =      0 in 00:00:00 = ******/s Avg:     0 Min: 9223372036854775807 Max: -9223372036854775808 Err:     0 (0.00%)\r\r\n. =      0 in 00:00:00 = ******/s Avg:     0 Min: 9223372036854775807 Max: -9223372036854775808 Err:     0 (0.00%)\r\r\nF.... =      0 in 00:00:00 = ******/s Avg:     0 Min: 9223372036854775807 Max: -9223372036854775808 Err:     0 (0.00%)\r\r\n......... =      0 in 00:00:00 = ******/s Avg:     0 Min: 9223372036854775807 Max: -9223372036854775808 Err:     0 (0.00%)\r\r\n. =      0 in 00:00:00 = ******/s Avg:     0 Min: 9223372036854775807 Max: -9223372036854775808 Err:     0 (0.00%)\r\r\nF =      0 in 00:00:00 = ******/s Avg:     0 Min: 9223372036854775807 Max: -9223372036854775808 Err:     0 (0.00%)\r\r\nE..... =      0 in 00:00:00 = ******/s Avg:     0 Min: 9223372036854775807 Max: -9223372036854775808 Err:     0 (0.00%)\r\r\nF\r\r\n======================================================================\r\r\nERROR: test_http_sampler (utests.test_postprocessors.TestSampler)\r\r\nsend request to postman echo\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_postprocessors.py\", line 31, in test_http_sampler\r\r\n    with open(path_to_jtl, \"r\", encoding=\"utf-8\") as jtl_file:\r\r\nFileNotFoundError: [Errno 2] No such file or directory: 'output\\\\fbd99792-54bf-43c3-9a61-66487386a925\\\\report.jtl'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_run_validate_order (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 108, in test_run_validate_order\r\r\n    with open(path_to_jtl, \"r\", encoding=\"utf-8\") as jtl_file:\r\r\nFileNotFoundError: [Errno 2] No such file or directory: 'output\\\\f21d25aa-d5f0-4ea7-ac1a-587eabcac8b4\\\\report.jtl'\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_http_sampler (utests.test_reporter.TestReporter)\r\r\ncreate an HTML report\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_reporter.py\", line 26, in test_http_sampler\r\r\n    self.assertTrue(os.path.exists(output_dir))\r\r\nAssertionError: False is not true\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_run_positive_flow (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 63, in test_run_positive_flow\r\r\n    self.assertGreaterEqual(stats.duration_milliseconds, 20000)\r\r\nAssertionError: 22 not greater than or equal to 20000\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_uniform_random_timer (utests.test_timers.TestTimer)\r\r\nWhen the minimal time is 5000 milliseconds,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_timers.py\", line 27, in test_uniform_random_timer\r\r\n    self.assertGreaterEqual(stats.duration_milliseconds, 2000)\r\r\nAssertionError: 19 not greater than or equal to 2000\r\r\n\r\r\n----------------------------------------------------------------------\r\r\nRan 25 tests in 8.956s\r\r\n\r\r\nFAILED (failures=3, errors=2)\r\r\n</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_22\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_22_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_22_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_22_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">22 : Job ID 35733884d92f490c828cdb53d3205486</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_22_1\" data-parent=\"#job_list___sub_accordion_22\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_22_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\config.py&amp;line=180\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\config.py, start pos: (180, 11), end pos: (180, 76)</button></a></pre><pre>operator: core/AddNot, occurrence: 2</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\config.py\r\n+++ bsrc\\pymeter\\api\\config.py\r\n@@ -177,7 +177,7 @@\r\n     \"\"\"base class for all thread groups\"\"\"\r\n \r\n     def __init__(self, *children: ThreadGroupChildElement) -&gt; None:\r\n-        if not all(isinstance(c, ThreadGroupChildElement) for c in children):\r\n+        if not not all(isinstance(c, ThreadGroupChildElement) for c in children):\r\n             raise TypeError(\"only takes children of type `ThreadGroupChildElement`\")\r\n         super().__init__()\r\n </pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">EEE....E.......EEEEEEEEEE\r\r\n======================================================================\r\r\nERROR: test_http_sampler (utests.test_postprocessors.TestSampler)\r\r\nsend request to postman echo\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_postprocessors.py\", line 21, in test_http_sampler\r\r\n    tg1 = ThreadGroupSimple(1, 1, http_sampler, dummy_sampler)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 228, in __init__\r\r\n    super().__init__(*children)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 181, in __init__\r\r\n    raise TypeError(\"only takes children of type `ThreadGroupChildElement`\")\r\r\nTypeError: only takes children of type `ThreadGroupChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_postprocessor_on_thread_group (utests.test_postprocessors.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_postprocessors.py\", line 41, in test_postprocessor_on_thread_group\r\r\n    tg1 = ThreadGroupSimple(1, 1, dummy_sampler, json_extractor)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 228, in __init__\r\r\n    super().__init__(*children)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 181, in __init__\r\r\n    raise TypeError(\"only takes children of type `ThreadGroupChildElement`\")\r\r\nTypeError: only takes children of type `ThreadGroupChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_sampler (utests.test_reporter.TestReporter)\r\r\ncreate an HTML report\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_reporter.py\", line 17, in test_http_sampler\r\r\n    tg = ThreadGroupWithRampUpAndHold(2, 1, 2, http_sampler, name=\"Some Name\")\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 249, in __init__\r\r\n    super().__init__(*children)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 181, in __init__\r\r\n    raise TypeError(\"only takes children of type `ThreadGroupChildElement`\")\r\r\nTypeError: only takes children of type `ThreadGroupChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_sampler (utests.test_sampler.TestSampler)\r\r\nsend request to postman echo\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 15, in test_http_sampler\r\r\n    tg1 = ThreadGroupSimple(1, 1, http_sampler)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 228, in __init__\r\r\n    super().__init__(*children)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 181, in __init__\r\r\n    raise TypeError(\"only takes children of type `ThreadGroupChildElement`\")\r\r\nTypeError: only takes children of type `ThreadGroupChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_test_plan_with_valid_children (utests.test_test_plan.TestTestPlanClass)\r\r\nWhen children are passed through,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 31, in test_creation_of_test_plan_with_valid_children\r\r\n    tg1 = ThreadGroupWithRampUpAndHold(10, 10, 10)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 249, in __init__\r\r\n    super().__init__(*children)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 181, in __init__\r\r\n    raise TypeError(\"only takes children of type `ThreadGroupChildElement`\")\r\r\nTypeError: only takes children of type `ThreadGroupChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_run_empty_flow (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 89, in test_run_empty_flow\r\r\n    tg1 = ThreadGroupWithRampUpAndHold(1, 1, 1)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 249, in __init__\r\r\n    super().__init__(*children)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 181, in __init__\r\r\n    raise TypeError(\"only takes children of type `ThreadGroupChildElement`\")\r\r\nTypeError: only takes children of type `ThreadGroupChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_run_positive_flow (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 56, in test_run_positive_flow\r\r\n    tg1 = ThreadGroupWithRampUpAndHold(30, 1, 20, http_sampler)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 249, in __init__\r\r\n    super().__init__(*children)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 181, in __init__\r\r\n    raise TypeError(\"only takes children of type `ThreadGroupChildElement`\")\r\r\nTypeError: only takes children of type `ThreadGroupChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_run_validate_order (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 99, in test_run_validate_order\r\r\n    tg_setup = SetupThreadGroup(dummy_sampler_for_setup)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 190, in __init__\r\r\n    super().__init__(*children)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 181, in __init__\r\r\n    raise TypeError(\"only takes children of type `ThreadGroupChildElement`\")\r\r\nTypeError: only takes children of type `ThreadGroupChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_empty_setup_thread_group (utests.test_thread_group.TestThreadGroupClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 22, in test_creation_of_empty_setup_thread_group\r\r\n    python_thread_group_object = SetupThreadGroup()\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 190, in __init__\r\r\n    super().__init__(*children)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 181, in __init__\r\r\n    raise TypeError(\"only takes children of type `ThreadGroupChildElement`\")\r\r\nTypeError: only takes children of type `ThreadGroupChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_empty_teardown_thread_group (utests.test_thread_group.TestThreadGroupClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 30, in test_creation_of_empty_teardown_thread_group\r\r\n    python_thread_group_object = TeardownThreadGroup()\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 205, in __init__\r\r\n    super().__init__(*children)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 181, in __init__\r\r\n    raise TypeError(\"only takes children of type `ThreadGroupChildElement`\")\r\r\nTypeError: only takes children of type `ThreadGroupChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_empty_thread_group (utests.test_thread_group.TestThreadGroupClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 14, in test_creation_of_empty_thread_group\r\r\n    python_thread_group_object = ThreadGroupWithRampUpAndHold(1, 1, 1)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 249, in __init__\r\r\n    super().__init__(*children)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 181, in __init__\r\r\n    raise TypeError(\"only takes children of type `ThreadGroupChildElement`\")\r\r\nTypeError: only takes children of type `ThreadGroupChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_thread_group_with_invalid_children (utests.test_thread_group.TestThreadGroupClass)\r\r\nChildren must be of type ThreadGroupChildElement,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 50, in test_creation_of_thread_group_with_invalid_children\r\r\n    python_thread_group_object = ThreadGroupWithRampUpAndHold(\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 262, in __init__\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 262, in &lt;listcomp&gt;\r\r\n    *[c.java_wrapped_element for c in children]\r\r\nAttributeError: 'str' object has no attribute 'java_wrapped_element'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_thread_group_with_valid_children (utests.test_thread_group.TestThreadGroupClass)\r\r\nWhen children are passed through,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 40, in test_creation_of_thread_group_with_valid_children\r\r\n    python_thread_group_object = ThreadGroupWithRampUpAndHold(1, 1, 1, http_sampler)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 249, in __init__\r\r\n    super().__init__(*children)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 181, in __init__\r\r\n    raise TypeError(\"only takes children of type `ThreadGroupChildElement`\")\r\r\nTypeError: only takes children of type `ThreadGroupChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_uniform_random_timer (utests.test_timers.TestTimer)\r\r\nWhen the minimal time is 5000 milliseconds,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_timers.py\", line 16, in test_uniform_random_timer\r\r\n    tg1 = ThreadGroupSimple(1, 1, http_sampler)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 228, in __init__\r\r\n    super().__init__(*children)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 181, in __init__\r\r\n    raise TypeError(\"only takes children of type `ThreadGroupChildElement`\")\r\r\nTypeError: only takes children of type `ThreadGroupChildElement`\r\r\n\r\r\n----------------------------------------------------------------------\r\r\nRan 25 tests in 1.297s\r\r\n\r\r\nFAILED (errors=14)\r\r\n</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_23\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_23_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_23_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_23_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">23 : Job ID 84db0c529d5542279814b126bc5eb286</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_23_1\" data-parent=\"#job_list___sub_accordion_23\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_23_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\config.py&amp;line=194\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\config.py, start pos: (194, 11), end pos: (194, 19)</button></a></pre><pre>operator: core/AddNot, occurrence: 3</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\config.py\r\n+++ bsrc\\pymeter\\api\\config.py\r\n@@ -191,7 +191,7 @@\r\n         self._setup_thread_group_instance = (\r\n             BaseConfigElement.jmeter_class.setupThreadGroup()\r\n         )\r\n-        if children:\r\n+        if not children:\r\n             self._setup_thread_group_instance.children(\r\n                 *[c.java_wrapped_element for c in children]\r\n             )</pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">Warning: Nashorn engine is planned to be removed from a future JDK release\r\r\n.00:53:43.268 [Thread Group 1-1] ERROR org.apache.jmeter.extractor.json.jmespath.JMESPathExtractor - Error processing JSON content in JSON JMESPath Extractor, message: Unrecognized token 'hi': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')\r\n at [Source: (String)\"hi dummy\"; line: 1, column: 3]\r\r\n =      1 in 00:00:00 =    8.0/s Avg:   267 Min:   267 Max:   267 Err:     0 (0.00%)\r\r\n...... =      1 in 00:00:01 =    1.5/s Avg:   611 Min:   611 Max:   611 Err:     0 (0.00%)\r\r\n......... =      0 in 00:00:00 = ******/s Avg:     0 Min: 9223372036854775807 Max: -9223372036854775808 Err:     0 (0.00%)\r\r\n. +   1066 in 00:00:07 =  156.1/s Avg:   172 Min:   139 Max:   668 Err:     0 (0.00%) Active: 30 Started: 30 Finished: 0\r\r\n +   2773 in 00:00:14 =  192.3/s Avg:   155 Min:   138 Max:   491 Err:     0 (0.00%) Active: 0 Started: 30 Finished: 30\r\r\n =   3839 in 00:00:21 =  180.7/s Avg:   160 Min:   138 Max:   668 Err:     0 (0.00%)\r\r\n.FE.... =      1 in 00:00:03 =    0.4/s Avg:   611 Min:   611 Max:   611 Err:     0 (0.00%)\r\r\n.\r\r\n======================================================================\r\r\nERROR: test_creation_of_empty_setup_thread_group (utests.test_thread_group.TestThreadGroupClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 22, in test_creation_of_empty_setup_thread_group\r\r\n    python_thread_group_object = SetupThreadGroup()\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 195, in __init__\r\r\n    self._setup_thread_group_instance.children(\r\r\n  File \"jnius\\jnius_export_class.pxi\", line 1163, in jnius.JavaMultipleMethod.__call__\r\r\njnius.JavaException: No methods called children in us/abstracta/jmeter/javadsl/core/threadgroups/DslSetupThreadGroup matching your arguments, requested: (), available: ['([Lus/abstracta/jmeter/javadsl/core/threadgroups/BaseThreadGroup$ThreadGroupChild;)Lus/abstracta/jmeter/javadsl/core/threadgroups/BaseThreadGroup;', '([Lus/abstracta/jmeter/javadsl/core/threadgroups/BaseThreadGroup$ThreadGroupChild;)Lus/abstracta/jmeter/javadsl/core/threadgroups/DslSimpleThreadGroup;']\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_run_validate_order (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 111, in test_run_validate_order\r\r\n    self.assertListEqual([\"dummy_setup\", \"dummy_main\", \"dummy_teardown\"], lst)\r\r\nAssertionError: Lists differ: ['dummy_setup', 'dummy_main', 'dummy_teardown'] != ['dummy_main', 'dummy_teardown']\r\r\n\r\r\nFirst differing element 0:\r\r\n'dummy_setup'\r\r\n'dummy_main'\r\r\n\r\r\nFirst list contains 1 additional elements.\r\r\nFirst extra element 2:\r\r\n'dummy_teardown'\r\r\n\r\r\n- ['dummy_setup', 'dummy_main', 'dummy_teardown']\r\r\n?  ---------------\r\r\n\r\r\n+ ['dummy_main', 'dummy_teardown']\r\r\n\r\r\n----------------------------------------------------------------------\r\r\nRan 25 tests in 46.434s\r\r\n\r\r\nFAILED (failures=1, errors=1)\r\r\n</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_24\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_24_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_24_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_24_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">24 : Job ID 27d2ca9d217047b8b98ea3d3671b09b8</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_24_1\" data-parent=\"#job_list___sub_accordion_24\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_24_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\config.py&amp;line=209\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\config.py, start pos: (209, 11), end pos: (209, 19)</button></a></pre><pre>operator: core/AddNot, occurrence: 4</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\config.py\r\n+++ bsrc\\pymeter\\api\\config.py\r\n@@ -206,7 +206,7 @@\r\n         self._teardown_thread_group_instance = (\r\n             BaseConfigElement.jmeter_class.teardownThreadGroup()\r\n         )\r\n-        if children:\r\n+        if not children:\r\n             self._teardown_thread_group_instance.children(\r\n                 *[c.java_wrapped_element for c in children]\r\n             )</pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">Warning: Nashorn engine is planned to be removed from a future JDK release\r\r\n.00:54:31.182 [Thread Group 1-1] ERROR org.apache.jmeter.extractor.json.jmespath.JMESPathExtractor - Error processing JSON content in JSON JMESPath Extractor, message: Unrecognized token 'hi': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')\r\n at [Source: (String)\"hi dummy\"; line: 1, column: 3]\r\r\n +      1 in 00:00:00 =   11.0/s Avg:   200 Min:   200 Max:   200 Err:     0 (0.00%) Active: 1 Started: 1 Finished: 0\r\r\n =      1 in 00:00:00 =   10.5/s Avg:   200 Min:   200 Max:   200 Err:     0 (0.00%)\r\r\n. +      1 in 00:00:01 =    1.5/s Avg:   625 Min:   625 Max:   625 Err:     0 (0.00%) Active: 2 Started: 2 Finished: 0\r\r\n..... =      1 in 00:00:01 =    1.4/s Avg:   661 Min:   661 Max:   661 Err:     0 (0.00%)\r\r\n......... =      0 in 00:00:00 = ******/s Avg:     0 Min: 9223372036854775807 Max: -9223372036854775808 Err:     0 (0.00%)\r\r\n. +   3241 in 00:00:18 =  177.8/s Avg:   162 Min:   139 Max:   671 Err:     0 (0.00%) Active: 30 Started: 30 Finished: 0\r\r\n +    552 in 00:00:03 =  184.7/s Avg:   161 Min:   140 Max:   438 Err:     0 (0.00%) Active: 0 Started: 30 Finished: 30\r\r\n =   3793 in 00:00:21 =  178.8/s Avg:   162 Min:   139 Max:   671 Err:     0 (0.00%)\r\r\nF +      1 in 00:00:00 = 1000.0/s Avg:   225 Min:   225 Max:   225 Err:     0 (0.00%) Active: 1 Started: 1 Finished: 0\r\r\nF.E... =      1 in 00:00:03 =    0.4/s Avg:   668 Min:   668 Max:   668 Err:     0 (0.00%)\r\r\n.\r\r\n======================================================================\r\r\nERROR: test_creation_of_empty_teardown_thread_group (utests.test_thread_group.TestThreadGroupClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 30, in test_creation_of_empty_teardown_thread_group\r\r\n    python_thread_group_object = TeardownThreadGroup()\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 210, in __init__\r\r\n    self._teardown_thread_group_instance.children(\r\r\n  File \"jnius\\jnius_export_class.pxi\", line 1163, in jnius.JavaMultipleMethod.__call__\r\r\njnius.JavaException: No methods called children in us/abstracta/jmeter/javadsl/core/threadgroups/DslTeardownThreadGroup matching your arguments, requested: (), available: ['([Lus/abstracta/jmeter/javadsl/core/threadgroups/BaseThreadGroup$ThreadGroupChild;)Lus/abstracta/jmeter/javadsl/core/threadgroups/BaseThreadGroup;', '([Lus/abstracta/jmeter/javadsl/core/threadgroups/BaseThreadGroup$ThreadGroupChild;)Lus/abstracta/jmeter/javadsl/core/threadgroups/DslSimpleThreadGroup;']\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_run_positive_flow (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 74, in test_run_positive_flow\r\r\n    self.assertLessEqual(\r\r\nAssertionError: 479 not less than or equal to 293\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_run_validate_order (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 111, in test_run_validate_order\r\r\n    self.assertListEqual([\"dummy_setup\", \"dummy_main\", \"dummy_teardown\"], lst)\r\r\nAssertionError: Lists differ: ['dummy_setup', 'dummy_main', 'dummy_teardown'] != ['dummy_setup', 'dummy_main']\r\r\n\r\r\nFirst list contains 1 additional elements.\r\r\nFirst extra element 2:\r\r\n'dummy_teardown'\r\r\n\r\r\n- ['dummy_setup', 'dummy_main', 'dummy_teardown']\r\r\n?                             ------------------\r\r\n\r\r\n+ ['dummy_setup', 'dummy_main']\r\r\n\r\r\n----------------------------------------------------------------------\r\r\nRan 25 tests in 46.245s\r\r\n\r\r\nFAILED (failures=2, errors=1)\r\r\n</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_25\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_25_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_25_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_25_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">25 : Job ID fd6b7a3101cf42808ba50edb42af5fab</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_25_1\" data-parent=\"#job_list___sub_accordion_25\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_25_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\config.py&amp;line=232\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\config.py, start pos: (232, 11), end pos: (232, 19)</button></a></pre><pre>operator: core/AddNot, occurrence: 5</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\config.py\r\n+++ bsrc\\pymeter\\api\\config.py\r\n@@ -229,7 +229,7 @@\r\n         self._thread_group_simple_instance = BaseConfigElement.jmeter_class.threadGroup(\r\n             name, number_of_threads, iterations\r\n         )\r\n-        if children:\r\n+        if not children:\r\n             self._thread_group_simple_instance.children(\r\n                 *[c.java_wrapped_element for c in children]\r\n             )</pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">Warning: Nashorn engine is planned to be removed from a future JDK release\r\r\nF =      0 in 00:00:00 = ******/s Avg:     0 Min: 9223372036854775807 Max: -9223372036854775808 Err:     0 (0.00%)\r\r\n...... =      0 in 00:00:00 = ******/s Avg:     0 Min: 9223372036854775807 Max: -9223372036854775808 Err:     0 (0.00%)\r\r\n......... =      0 in 00:00:00 = ******/s Avg:     0 Min: 9223372036854775807 Max: -9223372036854775808 Err:     0 (0.00%)\r\r\n. +      1 in 00:00:01 =    1.5/s Avg:   593 Min:   593 Max:   593 Err:     0 (0.00%) Active: 20 Started: 20 Finished: 0\r\r\n +   3876 in 00:00:21 =  188.9/s Avg:   158 Min:   138 Max:   735 Err:     0 (0.00%) Active: 0 Started: 30 Finished: 30\r\r\n =   3877 in 00:00:21 =  182.8/s Avg:   158 Min:   138 Max:   735 Err:     0 (0.00%)\r\r\nFF..... =      0 in 00:00:00 = ******/s Avg:     0 Min: 9223372036854775807 Max: -9223372036854775808 Err:     0 (0.00%)\r\r\nF\r\r\n======================================================================\r\r\nFAIL: test_http_sampler (utests.test_postprocessors.TestSampler)\r\r\nsend request to postman echo\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_postprocessors.py\", line 33, in test_http_sampler\r\r\n    self.assertIn(\"dummy 1\", [line.split(\",\")[2] for line in jtl_file])\r\r\nAssertionError: 'dummy 1' not found in []\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_run_positive_flow (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 74, in test_run_positive_flow\r\r\n    self.assertLessEqual(\r\r\nAssertionError: 551 not less than or equal to 198\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_run_validate_order (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 111, in test_run_validate_order\r\r\n    self.assertListEqual([\"dummy_setup\", \"dummy_main\", \"dummy_teardown\"], lst)\r\r\nAssertionError: Lists differ: ['dummy_setup', 'dummy_main', 'dummy_teardown'] != ['dummy_setup', 'dummy_teardown']\r\r\n\r\r\nFirst differing element 1:\r\r\n'dummy_main'\r\r\n'dummy_teardown'\r\r\n\r\r\nFirst list contains 1 additional elements.\r\r\nFirst extra element 2:\r\r\n'dummy_teardown'\r\r\n\r\r\n- ['dummy_setup', 'dummy_main', 'dummy_teardown']\r\r\n?                --------------\r\r\n\r\r\n+ ['dummy_setup', 'dummy_teardown']\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_uniform_random_timer (utests.test_timers.TestTimer)\r\r\nWhen the minimal time is 5000 milliseconds,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_timers.py\", line 27, in test_uniform_random_timer\r\r\n    self.assertGreaterEqual(stats.duration_milliseconds, 2000)\r\r\nAssertionError: 89 not greater than or equal to 2000\r\r\n\r\r\n----------------------------------------------------------------------\r\r\nRan 25 tests in 46.526s\r\r\n\r\r\nFAILED (failures=4)\r\r\n</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_26\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_26_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_26_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_26_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">26 : Job ID 6cad2828c5b44debbbb500fd311ac283</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_26_1\" data-parent=\"#job_list___sub_accordion_26\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_26_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\config.py&amp;line=260\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\config.py, start pos: (260, 11), end pos: (260, 19)</button></a></pre><pre>operator: core/AddNot, occurrence: 6</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\config.py\r\n+++ bsrc\\pymeter\\api\\config.py\r\n@@ -257,7 +257,7 @@\r\n                 BaseConfigElement.java_duration.ofSeconds(holdup_time_seconds),\r\n             )\r\n         )\r\n-        if children:\r\n+        if not children:\r\n             self._ramp_to_and_hold_instance.children(\r\n                 *[c.java_wrapped_element for c in children]\r\n             )</pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">Warning: Nashorn engine is planned to be removed from a future JDK release\r\r\n.00:56:14.824 [Thread Group 1-1] ERROR org.apache.jmeter.extractor.json.jmespath.JMESPathExtractor - Error processing JSON content in JSON JMESPath Extractor, message: Unrecognized token 'hi': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')\r\n at [Source: (String)\"hi dummy\"; line: 1, column: 3]\r\r\n =      1 in 00:00:00 =   10.8/s Avg:   251 Min:   251 Max:   251 Err:     0 (0.00%)\r\r\n.F.... =      1 in 00:00:01 =    1.4/s Avg:   646 Min:   646 Max:   646 Err:     0 (0.00%)\r\r\n........EE =      0 in 00:00:00 = ******/s Avg:     0 Min: 9223372036854775807 Max: -9223372036854775808 Err:     0 (0.00%)\r\r\nF...E.. +      1 in 00:00:03 =    0.4/s Avg:   618 Min:   618 Max:   618 Err:     0 (0.00%) Active: 1 Started: 1 Finished: 0\r\r\n =      1 in 00:00:03 =    0.4/s Avg:   618 Min:   618 Max:   618 Err:     0 (0.00%)\r\r\n.\r\r\n======================================================================\r\r\nERROR: test_creation_of_test_plan_with_valid_children (utests.test_test_plan.TestTestPlanClass)\r\r\nWhen children are passed through,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 31, in test_creation_of_test_plan_with_valid_children\r\r\n    tg1 = ThreadGroupWithRampUpAndHold(10, 10, 10)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 261, in __init__\r\r\n    self._ramp_to_and_hold_instance.children(\r\r\n  File \"jnius\\jnius_export_class.pxi\", line 1163, in jnius.JavaMultipleMethod.__call__\r\r\njnius.JavaException: No methods called children in us/abstracta/jmeter/javadsl/core/threadgroups/DslDefaultThreadGroup matching your arguments, requested: (), available: ['([Lus/abstracta/jmeter/javadsl/core/threadgroups/BaseThreadGroup$ThreadGroupChild;)Lus/abstracta/jmeter/javadsl/core/threadgroups/BaseThreadGroup;', '([Lus/abstracta/jmeter/javadsl/core/threadgroups/BaseThreadGroup$ThreadGroupChild;)Lus/abstracta/jmeter/javadsl/core/threadgroups/DslDefaultThreadGroup;']\r\r\n\r\r\n======================================================================\r\r\nERROR: test_run_empty_flow (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 89, in test_run_empty_flow\r\r\n    tg1 = ThreadGroupWithRampUpAndHold(1, 1, 1)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 261, in __init__\r\r\n    self._ramp_to_and_hold_instance.children(\r\r\n  File \"jnius\\jnius_export_class.pxi\", line 1163, in jnius.JavaMultipleMethod.__call__\r\r\njnius.JavaException: No methods called children in us/abstracta/jmeter/javadsl/core/threadgroups/DslDefaultThreadGroup matching your arguments, requested: (), available: ['([Lus/abstracta/jmeter/javadsl/core/threadgroups/BaseThreadGroup$ThreadGroupChild;)Lus/abstracta/jmeter/javadsl/core/threadgroups/BaseThreadGroup;', '([Lus/abstracta/jmeter/javadsl/core/threadgroups/BaseThreadGroup$ThreadGroupChild;)Lus/abstracta/jmeter/javadsl/core/threadgroups/DslDefaultThreadGroup;']\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_empty_thread_group (utests.test_thread_group.TestThreadGroupClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 14, in test_creation_of_empty_thread_group\r\r\n    python_thread_group_object = ThreadGroupWithRampUpAndHold(1, 1, 1)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 261, in __init__\r\r\n    self._ramp_to_and_hold_instance.children(\r\r\n  File \"jnius\\jnius_export_class.pxi\", line 1163, in jnius.JavaMultipleMethod.__call__\r\r\njnius.JavaException: No methods called children in us/abstracta/jmeter/javadsl/core/threadgroups/DslDefaultThreadGroup matching your arguments, requested: (), available: ['([Lus/abstracta/jmeter/javadsl/core/threadgroups/BaseThreadGroup$ThreadGroupChild;)Lus/abstracta/jmeter/javadsl/core/threadgroups/BaseThreadGroup;', '([Lus/abstracta/jmeter/javadsl/core/threadgroups/BaseThreadGroup$ThreadGroupChild;)Lus/abstracta/jmeter/javadsl/core/threadgroups/DslDefaultThreadGroup;']\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_http_sampler (utests.test_reporter.TestReporter)\r\r\ncreate an HTML report\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_reporter.py\", line 31, in test_http_sampler\r\r\n    self.assertTrue(os.path.exists(path_to_json))\r\r\nAssertionError: False is not true\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_run_positive_flow (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 63, in test_run_positive_flow\r\r\n    self.assertGreaterEqual(stats.duration_milliseconds, 20000)\r\r\nAssertionError: 1010 not greater than or equal to 20000\r\r\n\r\r\n----------------------------------------------------------------------\r\r\nRan 25 tests in 33.069s\r\r\n\r\r\nFAILED (failures=2, errors=3)\r\r\n</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_27\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_27_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_27_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_27_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">27 : Job ID d97201bba6564a63b3ad8c82fd68bd3a</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_27_1\" data-parent=\"#job_list___sub_accordion_27\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_27_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\config.py&amp;line=171\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\config.py, start pos: (171, 15), end pos: (171, 28)</button></a></pre><pre>operator: core/ExceptionReplacer, occurrence: 0</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\config.py\r\n+++ bsrc\\pymeter\\api\\config.py\r\n@@ -168,7 +168,7 @@\r\n         \"\"\"\r\n         try:\r\n             return TestPlan.TestPlanStats(self._test_plan_instance.run())\r\n-        except JavaException as java_exception:\r\n+        except CosmicRayTestingException as java_exception:\r\n             print(\"\\n\\t at \".join(java_exception.stacktrace))\r\n             raise java_exception\r\n </pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">Warning: Nashorn engine is planned to be removed from a future JDK release\r\r\n.00:56:53.649 [Thread Group 1-1] ERROR org.apache.jmeter.extractor.json.jmespath.JMESPathExtractor - Error processing JSON content in JSON JMESPath Extractor, message: Unrecognized token 'hi': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')\r\n at [Source: (String)\"hi dummy\"; line: 1, column: 3]\r\r\n =      1 in 00:00:00 =    9.3/s Avg:   296 Min:   296 Max:   296 Err:     0 (0.00%)\r\r\n...... =      1 in 00:00:01 =    1.4/s Avg:   642 Min:   642 Max:   642 Err:     0 (0.00%)\r\r\n......... =      0 in 00:00:00 = ******/s Avg:     0 Min: 9223372036854775807 Max: -9223372036854775808 Err:     0 (0.00%)\r\r\n. +   3201 in 00:00:18 =  175.6/s Avg:   164 Min:   137 Max:   728 Err:     0 (0.00%) Active: 30 Started: 30 Finished: 0\r\r\n +    574 in 00:00:03 =  190.8/s Avg:   158 Min:   138 Max:   360 Err:     0 (0.00%) Active: 0 Started: 30 Finished: 30\r\r\n =   3775 in 00:00:21 =  177.7/s Avg:   163 Min:   137 Max:   728 Err:     0 (0.00%)\r\r\nF +      1 in 00:00:00 = 1000.0/s Avg:   167 Min:   167 Max:   167 Err:     0 (0.00%) Active: 1 Started: 1 Finished: 0\r\r\n...... =      1 in 00:00:03 =    0.4/s Avg:   603 Min:   603 Max:   603 Err:     0 (0.00%)\r\r\n.\r\r\n======================================================================\r\r\nFAIL: test_run_positive_flow (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 78, in test_run_positive_flow\r\r\n    self.assertLessEqual(\r\r\nAssertionError: 634 not less than or equal to 617\r\r\n\r\r\n----------------------------------------------------------------------\r\r\nRan 25 tests in 66.573s\r\r\n\r\r\nFAILED (failures=1)\r\r\n</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_28\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_28_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_28_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_28_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">28 : Job ID 875ed68a273247e49d9db88b15f5df8e</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_28_1\" data-parent=\"#job_list___sub_accordion_28\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_28_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\config.py&amp;line=102\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\config.py, start pos: (102, 8), end pos: (103, 0)</button></a></pre><pre>operator: core/RemoveDecorator, occurrence: 0</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\config.py\r\n+++ bsrc\\pymeter\\api\\config.py\r\n@@ -98,8 +98,6 @@\r\n         def __init__(self, java_instance) -&gt; None:\r\n             self._test_plan_stats_instance = java_instance\r\n             super().__init__()\r\n-\r\n-        @property\r\n         def sample_time_mean_milliseconds(self):\r\n             \"\"\"returns the mean of sample times in milliseconds\"\"\"\r\n             return self.java_wrapped_element.overallStats.sampleTime().mean().toMillis()</pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">Warning: Nashorn engine is planned to be removed from a future JDK release\r\r\n.00:58:04.653 [Thread Group 1-1] ERROR org.apache.jmeter.extractor.json.jmespath.JMESPathExtractor - Error processing JSON content in JSON JMESPath Extractor, message: Unrecognized token 'hi': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')\r\n at [Source: (String)\"hi dummy\"; line: 1, column: 3]\r\r\n +      1 in 00:00:00 =   13.9/s Avg:   350 Min:   350 Max:   350 Err:     0 (0.00%) Active: 1 Started: 1 Finished: 0\r\r\n =      1 in 00:00:00 =   13.5/s Avg:   350 Min:   350 Max:   350 Err:     0 (0.00%)\r\r\n...... =      1 in 00:00:01 =    1.5/s Avg:   636 Min:   636 Max:   636 Err:     0 (0.00%)\r\r\n......... =      0 in 00:00:00 = ******/s Avg:     0 Min: 9223372036854775807 Max: -9223372036854775808 Err:     0 (0.00%)\r\r\n. +    661 in 00:00:05 =  135.6/s Avg:   188 Min:   141 Max:   705 Err:     0 (0.00%) Active: 30 Started: 30 Finished: 0\r\r\n +   3100 in 00:00:16 =  188.6/s Avg:   158 Min:   139 Max:   440 Err:     0 (0.00%) Active: 0 Started: 30 Finished: 30\r\r\n =   3761 in 00:00:21 =  176.5/s Avg:   163 Min:   139 Max:   705 Err:     0 (0.00%)\r\r\nE...... =      1 in 00:00:03 =    0.4/s Avg:   613 Min:   613 Max:   613 Err:     0 (0.00%)\r\r\n.\r\r\n======================================================================\r\r\nERROR: test_run_positive_flow (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 64, in test_run_positive_flow\r\r\n    self.assertLessEqual(\r\r\n  File \"C:\\Python310\\lib\\unittest\\case.py\", line 1236, in assertLessEqual\r\r\n    if not a &lt;= b:\r\r\nTypeError: '&lt;=' not supported between instances of 'method' and 'int'\r\r\n\r\r\n----------------------------------------------------------------------\r\r\nRan 25 tests in 69.870s\r\r\n\r\r\nFAILED (errors=1)\r\r\n</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_29\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_29_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_29_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_29_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">29 : Job ID 860aecb517ea4d05815773701262eb4c</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_29_1\" data-parent=\"#job_list___sub_accordion_29\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_29_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\config.py&amp;line=107\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\config.py, start pos: (107, 8), end pos: (108, 0)</button></a></pre><pre>operator: core/RemoveDecorator, occurrence: 1</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\config.py\r\n+++ bsrc\\pymeter\\api\\config.py\r\n@@ -103,8 +103,6 @@\r\n         def sample_time_mean_milliseconds(self):\r\n             \"\"\"returns the mean of sample times in milliseconds\"\"\"\r\n             return self.java_wrapped_element.overallStats.sampleTime().mean().toMillis()\r\n-\r\n-        @property\r\n         def sample_time_min_milliseconds(self):\r\n             \"\"\"returns the min of sample times in milliseconds\"\"\"\r\n             return self.java_wrapped_element.overallStats.sampleTime().min().toMillis()</pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">Warning: Nashorn engine is planned to be removed from a future JDK release\r\r\n.00:59:13.616 [Thread Group 1-1] ERROR org.apache.jmeter.extractor.json.jmespath.JMESPathExtractor - Error processing JSON content in JSON JMESPath Extractor, message: Unrecognized token 'hi': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')\r\n at [Source: (String)\"hi dummy\"; line: 1, column: 3]\r\r\n =      1 in 00:00:00 =   11.5/s Avg:   186 Min:   186 Max:   186 Err:     0 (0.00%)\r\r\n...... =      1 in 00:00:01 =    1.6/s Avg:   591 Min:   591 Max:   591 Err:     0 (0.00%)\r\r\n......... =      0 in 00:00:00 = ******/s Avg:     0 Min: 9223372036854775807 Max: -9223372036854775808 Err:     0 (0.00%)\r\r\n. +     40 in 00:00:01 =   32.7/s Avg:   345 Min:   140 Max:   655 Err:     0 (0.00%) Active: 30 Started: 30 Finished: 0\r\r\n +   3799 in 00:00:20 =  190.1/s Avg:   158 Min:   138 Max:   745 Err:     0 (0.00%) Active: 0 Started: 30 Finished: 30\r\r\n =   3839 in 00:00:21 =  181.0/s Avg:   160 Min:   138 Max:   745 Err:     0 (0.00%)\r\r\nE...... =      1 in 00:00:03 =    0.3/s Avg:   764 Min:   764 Max:   764 Err:     0 (0.00%)\r\r\n.\r\r\n======================================================================\r\r\nERROR: test_run_positive_flow (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 67, in test_run_positive_flow\r\r\n    self.assertLessEqual(\r\r\n  File \"C:\\Python310\\lib\\unittest\\case.py\", line 1236, in assertLessEqual\r\r\n    if not a &lt;= b:\r\r\nTypeError: '&lt;=' not supported between instances of 'method' and 'int'\r\r\n\r\r\n----------------------------------------------------------------------\r\r\nRan 25 tests in 59.741s\r\r\n\r\r\nFAILED (errors=1)\r\r\n</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_30\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_30_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_30_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_30_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">30 : Job ID 0097ab9203124205bd5edc5b2d8b833e</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_30_1\" data-parent=\"#job_list___sub_accordion_30\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_30_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\config.py&amp;line=112\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\config.py, start pos: (112, 8), end pos: (113, 0)</button></a></pre><pre>operator: core/RemoveDecorator, occurrence: 2</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\config.py\r\n+++ bsrc\\pymeter\\api\\config.py\r\n@@ -108,8 +108,6 @@\r\n         def sample_time_min_milliseconds(self):\r\n             \"\"\"returns the min of sample times in milliseconds\"\"\"\r\n             return self.java_wrapped_element.overallStats.sampleTime().min().toMillis()\r\n-\r\n-        @property\r\n         def sample_time_median_milliseconds(self):\r\n             \"\"\"returns the median of sample times in milliseconds\"\"\"\r\n             return (</pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">Warning: Nashorn engine is planned to be removed from a future JDK release\r\r\n.01:00:15.058 [Thread Group 1-1] ERROR org.apache.jmeter.extractor.json.jmespath.JMESPathExtractor - Error processing JSON content in JSON JMESPath Extractor, message: Unrecognized token 'hi': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')\r\n at [Source: (String)\"hi dummy\"; line: 1, column: 3]\r\r\n =      1 in 00:00:00 =   14.5/s Avg:   232 Min:   232 Max:   232 Err:     0 (0.00%)\r\r\n...... =      1 in 00:00:01 =    1.5/s Avg:   611 Min:   611 Max:   611 Err:     0 (0.00%)\r\r\n......... =      0 in 00:00:00 = ******/s Avg:     0 Min: 9223372036854775807 Max: -9223372036854775808 Err:     0 (0.00%)\r\r\n. +      6 in 00:00:01 =    6.8/s Avg:   641 Min:   597 Max:   704 Err:     0 (0.00%) Active: 26 Started: 26 Finished: 0\r\r\n +   3734 in 00:00:20 =  183.6/s Avg:   164 Min:   140 Max:   796 Err:     0 (0.00%) Active: 0 Started: 30 Finished: 30\r\r\n =   3740 in 00:00:21 =  176.2/s Avg:   164 Min:   140 Max:   796 Err:     0 (0.00%)\r\r\nE...... =      1 in 00:00:03 =    0.4/s Avg:   585 Min:   585 Max:   585 Err:     0 (0.00%)\r\r\n.\r\r\n======================================================================\r\r\nERROR: test_run_positive_flow (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 67, in test_run_positive_flow\r\r\n    self.assertLessEqual(\r\r\n  File \"C:\\Python310\\lib\\unittest\\case.py\", line 1236, in assertLessEqual\r\r\n    if not a &lt;= b:\r\r\nTypeError: '&lt;=' not supported between instances of 'int' and 'method'\r\r\n\r\r\n----------------------------------------------------------------------\r\r\nRan 25 tests in 54.935s\r\r\n\r\r\nFAILED (errors=1)\r\r\n</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_31\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_31_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_31_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_31_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">31 : Job ID cedbd26e1c43402d96893c91a7352d7a</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_31_1\" data-parent=\"#job_list___sub_accordion_31\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_31_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\config.py&amp;line=119\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\config.py, start pos: (119, 8), end pos: (120, 0)</button></a></pre><pre>operator: core/RemoveDecorator, occurrence: 3</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\config.py\r\n+++ bsrc\\pymeter\\api\\config.py\r\n@@ -115,8 +115,6 @@\r\n             return (\r\n                 self.java_wrapped_element.overallStats.sampleTime().median().toMillis()\r\n             )\r\n-\r\n-        @property\r\n         def sample_time_90_percentile_milliseconds(self):\r\n             \"\"\"returns the 90th percentile of sample times in milliseconds\"\"\"\r\n             return (</pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">Warning: Nashorn engine is planned to be removed from a future JDK release\r\r\n.01:01:12.011 [Thread Group 1-1] ERROR org.apache.jmeter.extractor.json.jmespath.JMESPathExtractor - Error processing JSON content in JSON JMESPath Extractor, message: Unrecognized token 'hi': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')\r\n at [Source: (String)\"hi dummy\"; line: 1, column: 3]\r\r\n =      1 in 00:00:00 =   12.0/s Avg:   430 Min:   430 Max:   430 Err:     0 (0.00%)\r\r\n...... =      1 in 00:00:01 =    1.5/s Avg:   609 Min:   609 Max:   609 Err:     0 (0.00%)\r\r\n......... =      0 in 00:00:00 = ******/s Avg:     0 Min: 9223372036854775807 Max: -9223372036854775808 Err:     0 (0.00%)\r\r\n. +    537 in 00:00:04 =  136.9/s Avg:   184 Min:   138 Max:   674 Err:     0 (0.00%) Active: 30 Started: 30 Finished: 0\r\r\n +   3273 in 00:00:17 =  188.9/s Avg:   158 Min:   138 Max:   549 Err:     0 (0.00%) Active: 0 Started: 30 Finished: 30\r\r\n =   3810 in 00:00:21 =  179.3/s Avg:   161 Min:   138 Max:   674 Err:     0 (0.00%)\r\r\nE...... =      1 in 00:00:03 =    0.4/s Avg:   602 Min:   602 Max:   602 Err:     0 (0.00%)\r\r\n.\r\r\n======================================================================\r\r\nERROR: test_run_positive_flow (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 70, in test_run_positive_flow\r\r\n    self.assertLessEqual(\r\r\n  File \"C:\\Python310\\lib\\unittest\\case.py\", line 1236, in assertLessEqual\r\r\n    if not a &lt;= b:\r\r\nTypeError: '&lt;=' not supported between instances of 'int' and 'method'\r\r\n\r\r\n----------------------------------------------------------------------\r\r\nRan 25 tests in 55.138s\r\r\n\r\r\nFAILED (errors=1)\r\r\n</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_32\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_32_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_32_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_32_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">32 : Job ID d941931672af497fbee514c5d925c28e</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_32_1\" data-parent=\"#job_list___sub_accordion_32\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_32_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\config.py&amp;line=126\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\config.py, start pos: (126, 8), end pos: (127, 0)</button></a></pre><pre>operator: core/RemoveDecorator, occurrence: 4</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\config.py\r\n+++ bsrc\\pymeter\\api\\config.py\r\n@@ -122,8 +122,6 @@\r\n             return (\r\n                 self.java_wrapped_element.overallStats.sampleTime().perc90().toMillis()\r\n             )\r\n-\r\n-        @property\r\n         def sample_time_95_percentile_milliseconds(self):\r\n             \"\"\"returns the 95th percentile of sample times in milliseconds\"\"\"\r\n             return (</pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">Warning: Nashorn engine is planned to be removed from a future JDK release\r\r\n +      1 in 00:00:02 =    0.7/s Avg:  1053 Min:  1053 Max:  1053 Err:     0 (0.00%) Active: 1 Started: 1 Finished: 0\r\r\n.01:02:10.997 [Thread Group 1-1] ERROR org.apache.jmeter.extractor.json.jmespath.JMESPathExtractor - Error processing JSON content in JSON JMESPath Extractor, message: Unrecognized token 'hi': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')\r\n at [Source: (String)\"hi dummy\"; line: 1, column: 3]\r\r\n =      1 in 00:00:00 =   11.4/s Avg:   474 Min:   474 Max:   474 Err:     0 (0.00%)\r\r\n...... =      1 in 00:00:01 =    1.4/s Avg:   643 Min:   643 Max:   643 Err:     0 (0.00%)\r\r\n......... =      0 in 00:00:00 = ******/s Avg:     0 Min: 9223372036854775807 Max: -9223372036854775808 Err:     0 (0.00%)\r\r\n. +    622 in 00:00:04 =  142.4/s Avg:   179 Min:   139 Max:   663 Err:     0 (0.00%) Active: 30 Started: 30 Finished: 0\r\r\n +   3201 in 00:00:17 =  189.9/s Avg:   157 Min:   138 Max:   508 Err:     0 (0.00%) Active: 0 Started: 30 Finished: 30\r\r\n =   3823 in 00:00:21 =  180.1/s Avg:   161 Min:   138 Max:   663 Err:     0 (0.00%)\r\r\nE...... =      1 in 00:00:03 =    0.4/s Avg:   639 Min:   639 Max:   639 Err:     0 (0.00%)\r\r\n.\r\r\n======================================================================\r\r\nERROR: test_run_positive_flow (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 74, in test_run_positive_flow\r\r\n    self.assertLessEqual(\r\r\n  File \"C:\\Python310\\lib\\unittest\\case.py\", line 1236, in assertLessEqual\r\r\n    if not a &lt;= b:\r\r\nTypeError: '&lt;=' not supported between instances of 'int' and 'method'\r\r\n\r\r\n----------------------------------------------------------------------\r\r\nRan 25 tests in 56.010s\r\r\n\r\r\nFAILED (errors=1)\r\r\n</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_33\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_33_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_33_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_33_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">33 : Job ID 58a417e2b2064e1182dd08773584cc66</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_33_1\" data-parent=\"#job_list___sub_accordion_33\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_33_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\config.py&amp;line=133\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\config.py, start pos: (133, 8), end pos: (134, 0)</button></a></pre><pre>operator: core/RemoveDecorator, occurrence: 5</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\config.py\r\n+++ bsrc\\pymeter\\api\\config.py\r\n@@ -129,8 +129,6 @@\r\n             return (\r\n                 self.java_wrapped_element.overallStats.sampleTime().perc95().toMillis()\r\n             )\r\n-\r\n-        @property\r\n         def sample_time_99_percentile_milliseconds(self):\r\n             \"\"\"returns the 99th percentile of sample times in milliseconds\"\"\"\r\n             return (</pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">Warning: Nashorn engine is planned to be removed from a future JDK release\r\r\n +      1 in 00:00:01 =    0.7/s Avg:  1016 Min:  1016 Max:  1016 Err:     0 (0.00%) Active: 1 Started: 1 Finished: 0\r\r\n.01:03:09.756 [Thread Group 1-1] ERROR org.apache.jmeter.extractor.json.jmespath.JMESPathExtractor - Error processing JSON content in JSON JMESPath Extractor, message: Unrecognized token 'hi': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')\r\n at [Source: (String)\"hi dummy\"; line: 1, column: 3]\r\r\n =      1 in 00:00:00 =   13.0/s Avg:   455 Min:   455 Max:   455 Err:     0 (0.00%)\r\r\n...... =      1 in 00:00:01 =    1.5/s Avg:   624 Min:   624 Max:   624 Err:     0 (0.00%)\r\r\n......... =      0 in 00:00:00 = ******/s Avg:     0 Min: 9223372036854775807 Max: -9223372036854775808 Err:     0 (0.00%)\r\r\n. +    755 in 00:00:05 =  149.6/s Avg:   174 Min:   139 Max:   706 Err:     0 (0.00%) Active: 30 Started: 30 Finished: 0\r\r\n +   3074 in 00:00:16 =  189.4/s Avg:   157 Min:   139 Max:   482 Err:     0 (0.00%) Active: 0 Started: 30 Finished: 30\r\r\n =   3829 in 00:00:21 =  180.0/s Avg:   160 Min:   139 Max:   706 Err:     0 (0.00%)\r\r\nE...... =      1 in 00:00:03 =    0.4/s Avg:   625 Min:   625 Max:   625 Err:     0 (0.00%)\r\r\n.\r\r\n======================================================================\r\r\nERROR: test_run_positive_flow (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 78, in test_run_positive_flow\r\r\n    self.assertLessEqual(\r\r\n  File \"C:\\Python310\\lib\\unittest\\case.py\", line 1236, in assertLessEqual\r\r\n    if not a &lt;= b:\r\r\nTypeError: '&lt;=' not supported between instances of 'int' and 'method'\r\r\n\r\r\n----------------------------------------------------------------------\r\r\nRan 25 tests in 56.506s\r\r\n\r\r\nFAILED (errors=1)\r\r\n</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_34\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_34_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_34_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_34_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">34 : Job ID 17ed7f86ad1d4377bdacae9fe2b0bf26</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_34_1\" data-parent=\"#job_list___sub_accordion_34\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_34_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\config.py&amp;line=140\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\config.py, start pos: (140, 8), end pos: (141, 0)</button></a></pre><pre>operator: core/RemoveDecorator, occurrence: 6</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\config.py\r\n+++ bsrc\\pymeter\\api\\config.py\r\n@@ -136,8 +136,6 @@\r\n             return (\r\n                 self.java_wrapped_element.overallStats.sampleTime().perc99().toMillis()\r\n             )\r\n-\r\n-        @property\r\n         def sample_time_max_milliseconds(self):\r\n             \"\"\"returns the max of sample times in milliseconds\"\"\"\r\n             return self.java_wrapped_element.overallStats.sampleTime().max().toMillis()</pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">Warning: Nashorn engine is planned to be removed from a future JDK release\r\r\n +      1 in 00:00:01 =    0.7/s Avg:  1005 Min:  1005 Max:  1005 Err:     0 (0.00%) Active: 1 Started: 1 Finished: 0\r\r\n.01:04:10.269 [Thread Group 1-1] ERROR org.apache.jmeter.extractor.json.jmespath.JMESPathExtractor - Error processing JSON content in JSON JMESPath Extractor, message: Unrecognized token 'hi': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')\r\n at [Source: (String)\"hi dummy\"; line: 1, column: 3]\r\r\n =      1 in 00:00:00 =    9.4/s Avg:    72 Min:    72 Max:    72 Err:     0 (0.00%)\r\r\n...... =      1 in 00:00:01 =    1.5/s Avg:   615 Min:   615 Max:   615 Err:     0 (0.00%)\r\r\n......... =      0 in 00:00:00 = ******/s Avg:     0 Min: 9223372036854775807 Max: -9223372036854775808 Err:     0 (0.00%)\r\r\n. +    920 in 00:00:06 =  152.8/s Avg:   175 Min:   139 Max:   670 Err:     0 (0.00%) Active: 30 Started: 30 Finished: 0\r\r\n +   2891 in 00:00:15 =  190.1/s Avg:   157 Min:   139 Max:   524 Err:     0 (0.00%) Active: 0 Started: 30 Finished: 30\r\r\n =   3811 in 00:00:21 =  179.6/s Avg:   161 Min:   139 Max:   670 Err:     0 (0.00%)\r\r\nE...... =      1 in 00:00:03 =    0.4/s Avg:   599 Min:   599 Max:   599 Err:     0 (0.00%)\r\r\n.\r\r\n======================================================================\r\r\nERROR: test_run_positive_flow (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 64, in test_run_positive_flow\r\r\n    self.assertLessEqual(\r\r\n  File \"C:\\Python310\\lib\\unittest\\case.py\", line 1236, in assertLessEqual\r\r\n    if not a &lt;= b:\r\r\nTypeError: '&lt;=' not supported between instances of 'int' and 'method'\r\r\n\r\r\n----------------------------------------------------------------------\r\r\nRan 25 tests in 55.986s\r\r\n\r\r\nFAILED (errors=1)\r\r\n</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_35\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_35_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_35_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_35_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">35 : Job ID 4213b38649ab48d891e21d320ea8f5b9</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_35_1\" data-parent=\"#job_list___sub_accordion_35\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_35_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\config.py&amp;line=145\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\config.py, start pos: (145, 8), end pos: (146, 0)</button></a></pre><pre>operator: core/RemoveDecorator, occurrence: 7</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\config.py\r\n+++ bsrc\\pymeter\\api\\config.py\r\n@@ -141,8 +141,6 @@\r\n         def sample_time_max_milliseconds(self):\r\n             \"\"\"returns the max of sample times in milliseconds\"\"\"\r\n             return self.java_wrapped_element.overallStats.sampleTime().max().toMillis()\r\n-\r\n-        @property\r\n         def duration_milliseconds(self):\r\n             \"\"\"returns the max of sample times in milliseconds\"\"\"\r\n             return self.java_wrapped_element.duration().toMillis()</pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">Warning: Nashorn engine is planned to be removed from a future JDK release\r\r\n +      1 in 00:00:01 =    0.7/s Avg:   995 Min:   995 Max:   995 Err:     0 (0.00%) Active: 1 Started: 1 Finished: 0\r\r\n.01:05:05.332 [Thread Group 1-1] ERROR org.apache.jmeter.extractor.json.jmespath.JMESPathExtractor - Error processing JSON content in JSON JMESPath Extractor, message: Unrecognized token 'hi': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')\r\n at [Source: (String)\"hi dummy\"; line: 1, column: 3]\r\r\n +      1 in 00:00:00 =   11.4/s Avg:   356 Min:   356 Max:   356 Err:     0 (0.00%) Active: 1 Started: 1 Finished: 0\r\r\n =      1 in 00:00:00 =   11.2/s Avg:   356 Min:   356 Max:   356 Err:     0 (0.00%)\r\r\n...... =      1 in 00:00:01 =    1.4/s Avg:   668 Min:   668 Max:   668 Err:     0 (0.00%)\r\r\n......... =      0 in 00:00:00 = ******/s Avg:     0 Min: 9223372036854775807 Max: -9223372036854775808 Err:     0 (0.00%)\r\r\n. +   1856 in 00:00:11 =  168.1/s Avg:   167 Min:   140 Max:   676 Err:     0 (0.00%) Active: 30 Started: 30 Finished: 0\r\r\n +   1877 in 00:00:10 =  184.7/s Avg:   162 Min:   139 Max:   466 Err:     0 (0.00%) Active: 0 Started: 30 Finished: 30\r\r\n =   3733 in 00:00:21 =  176.0/s Avg:   165 Min:   139 Max:   676 Err:     0 (0.00%)\r\r\nE...... =      1 in 00:00:03 =    0.4/s Avg:   660 Min:   660 Max:   660 Err:     0 (0.00%)\r\r\nE\r\r\n======================================================================\r\r\nERROR: test_run_positive_flow (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 63, in test_run_positive_flow\r\r\n    self.assertGreaterEqual(stats.duration_milliseconds, 20000)\r\r\n  File \"C:\\Python310\\lib\\unittest\\case.py\", line 1248, in assertGreaterEqual\r\r\n    if not a &gt;= b:\r\r\nTypeError: '&gt;=' not supported between instances of 'method' and 'int'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_uniform_random_timer (utests.test_timers.TestTimer)\r\r\nWhen the minimal time is 5000 milliseconds,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_timers.py\", line 27, in test_uniform_random_timer\r\r\n    self.assertGreaterEqual(stats.duration_milliseconds, 2000)\r\r\n  File \"C:\\Python310\\lib\\unittest\\case.py\", line 1248, in assertGreaterEqual\r\r\n    if not a &gt;= b:\r\r\nTypeError: '&gt;=' not supported between instances of 'method' and 'int'\r\r\n\r\r\n----------------------------------------------------------------------\r\r\nRan 25 tests in 53.092s\r\r\n\r\r\nFAILED (errors=2)\r\r\n</pre></div></div></div></div></div></div></div></div></div></div><script src=\"https://code.jquery.com/jquery-3.3.1.slim.min.js\" integrity=\"sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo\" crossorigin=\"anonymous\"></script><script src=\"https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js\" integrity=\"sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1\" crossorigin=\"anonymous\"></script><script src=\"https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js\" integrity=\"sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM\" crossorigin=\"anonymous\"></script><script type=\"text/javascript\">$('div.job_list___sub_multi_collapse').on('shown.bs.collapse',  function () {    correct_behavior_functional_buttons();  });$('div.job_list___sub_multi_collapse').on('hidden.bs.collapse',  function () {    correct_behavior_functional_buttons();  });function correct_behavior_functional_buttons() {    var expand = false;    var collapse = false;    $('a.job_list___sub_multi_heading').each(function(index) {      if ($(this).attr('aria-expanded') == 'false') {        expand = true;        return false;      };    });    $('a.job_list___sub_multi_heading').each(function(index) {      if ($(this).attr('aria-expanded') == 'true') {        collapse = true;        return false;      };    });    if (expand) {      $('div#job_item_expand_all').css('display', 'inline-block');    } else {      $('div#job_item_expand_all').css('display', 'none');    };    if (collapse) {      $('div#job_item_collapse_all').css('display', 'inline-block');    } else {      $('div#job_item_collapse_all').css('display', 'none');    };  };correct_behavior_functional_buttons();</script></body></html>\r\n"
  },
  {
    "path": "docs/Mutation-Testing/27092022.html",
    "content": "<!DOCTYPE html><html lang=\"en\"><head><meta charset=\"utf-8\" /><meta name=\"viewport\" content=\"width=device-width, initial-scale=1, shrink-to-fit=no\" /><link rel=\"stylesheet\" href=\"https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css\" integrity=\"sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T\" crossorigin=\"anonymous\" /><title>Cosmic Ray Report</title></head><body><div class=\"container\"><h1><p class=\"text-dark\">Cosmic Ray Report</p></h1></div><div class=\"container\"><div class=\"mb-1\" id=\"summary_info___accordion\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#summary_info___collapse_1\" aria-expanded=\"true\" aria-controls=\"summary_info___collapse_1\" href=\"#\"><div class=\"card-header\" id=\"summary_info___heading_1\"><button class=\"btn btn-outline-dark\"><h4 class=\"m-0\">Summary info</h4></button></div></a><div aria-labelledby=\"summary_info___heading_1\" data-parent=\"#summary_info___accordion\" class=\"collapse show\" id=\"summary_info___collapse_1\"><div class=\"card-body\"><p>Date time: 27/09/2022 22:02:08</p><p>Total jobs: 35</p><p>Complete: 35 (100.00%)</p><p>Surviving mutants: 1 (2.86%)</p></div></div></div></div><div class=\"mb-1\" id=\"job_list___accordion\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___collapse_1\" aria-expanded=\"false\" aria-controls=\"job_list___collapse_1\" href=\"#\"><div class=\"card-header\" id=\"job_list___heading_1\"><button class=\"btn btn-outline-dark\"><h4 class=\"m-0\">Job list</h4></button></div></a><div aria-labelledby=\"job_list___heading_1\" data-parent=\"#job_list___accordion\" class=\"collapse\" id=\"job_list___collapse_1\"><div class=\"card-body\"><div class=\"text-right mb-1\"><div class=\"mx-1\" id=\"job_item_expand_all\"><a href=\"#\" onclick=\"$('div.job_list___sub_multi_collapse').collapse('show');\"><button class=\"btn btn-outline-dark\"><span>Expand All</span></button></a></div><div class=\"mx-1\" id=\"job_item_collapse_all\"><a href=\"#\" onclick=\"$('div.job_list___sub_multi_collapse').collapse('hide');\"><button class=\"btn btn-outline-dark\"><span>Collapse All</span></button></a></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_1\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_1_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_1_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_1_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">1 : Job ID 83ceeba4d3c04fb389daa999e658f55c</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_1_1\" data-parent=\"#job_list___sub_accordion_1\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_1_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\reporters.py&amp;line=17\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\reporters.py, start pos: (17, 30), end pos: (17, 32)</button></a></pre><pre>operator: core/ReplaceOrWithAnd, occurrence: 0</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\reporters.py\r\n+++ bsrc\\pymeter\\api\\reporters.py\r\n@@ -14,7 +14,7 @@\r\n     \"\"\"reports results to HTML format\"\"\"\r\n     def __init__(self, directory: Optional[str] = None) -&gt; None:\r\n \r\n-        directory = directory or os.path.join(\r\n+        directory = directory and os.path.join(\r\n             \"output\", f'html-report-{datetime.now().strftime(\"%m%d%Y%H%M%S\")}'\r\n         )\r\n         self._html_reporter_instance = HtmlReporter.jmeter_class.htmlReporter(directory)</pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">timeout</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_2\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_2_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_2_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_2_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">2 : Job ID e1a4222bdf0c490f9e4f3347e1a1aa3c</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_2_1\" data-parent=\"#job_list___sub_accordion_2\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_2_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\config.py&amp;line=70\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\config.py, start pos: (70, 11), end pos: (70, 14)</button></a></pre><pre>operator: core/ReplaceUnaryOperator_Delete_Not, occurrence: 0</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\config.py\r\n+++ bsrc\\pymeter\\api\\config.py\r\n@@ -67,7 +67,7 @@\r\n             return self.java_wrapped_element.duration().toMillis()\r\n \r\n     def __init__(self, *children: TestPlanChildElement) -&gt; None:\r\n-        if not all(isinstance(c, TestPlanChildElement) for c in children):\r\n+        if  all(isinstance(c, TestPlanChildElement) for c in children):\r\n             raise TypeError(\"only takes children of type `TestPlanChildElement`\")\r\n         self._test_plan_instance = BaseConfigElement.jmeter_class.testPlan()\r\n         if children:</pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">EE....E.....EEEEEE.....E\r\r\n======================================================================\r\r\nERROR: test_http_sampler (utests.test_postprocessors.TestSampler)\r\r\nsend request to postman echo\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_postprocessors.py\", line 24, in test_http_sampler\r\r\n    test_plan = TestPlan(tg1, html_reporter)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 71, in __init__\r\r\n    raise TypeError(\"only takes children of type `TestPlanChildElement`\")\r\r\nTypeError: only takes children of type `TestPlanChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_sampler (utests.test_reporter.TestReporter)\r\r\ncreate an HTML report\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_reporter.py\", line 20, in test_http_sampler\r\r\n    tp = TestPlan(tg, html_reporter)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 71, in __init__\r\r\n    raise TypeError(\"only takes children of type `TestPlanChildElement`\")\r\r\nTypeError: only takes children of type `TestPlanChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_sampler (utests.test_sampler.TestSampler)\r\r\nsend request to postman echo\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 16, in test_http_sampler\r\r\n    test_plan = TestPlan(tg1)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 71, in __init__\r\r\n    raise TypeError(\"only takes children of type `TestPlanChildElement`\")\r\r\nTypeError: only takes children of type `TestPlanChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_empty_test_plan (utests.test_test_plan.TestTestPlanClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 22, in test_creation_of_empty_test_plan\r\r\n    python_test_plan_object = TestPlan()\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 71, in __init__\r\r\n    raise TypeError(\"only takes children of type `TestPlanChildElement`\")\r\r\nTypeError: only takes children of type `TestPlanChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_test_plan_with_invalid_children (utests.test_test_plan.TestTestPlanClass)\r\r\nChildren must be of type TestPlanChildElement,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 43, in test_creation_of_test_plan_with_invalid_children\r\r\n    test_plan = TestPlan(1, \"aaa\")\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 75, in __init__\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 75, in &lt;listcomp&gt;\r\r\n    *[c.java_wrapped_element for c in children]\r\r\nAttributeError: 'int' object has no attribute 'java_wrapped_element'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_test_plan_with_valid_children (utests.test_test_plan.TestTestPlanClass)\r\r\nWhen children are passed through,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 33, in test_creation_of_test_plan_with_valid_children\r\r\n    test_plan = TestPlan(tg1, tg2)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 71, in __init__\r\r\n    raise TypeError(\"only takes children of type `TestPlanChildElement`\")\r\r\nTypeError: only takes children of type `TestPlanChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_run_empty_flow (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 90, in test_run_empty_flow\r\r\n    test_plan = TestPlan(tg1)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 71, in __init__\r\r\n    raise TypeError(\"only takes children of type `TestPlanChildElement`\")\r\r\nTypeError: only takes children of type `TestPlanChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_run_positive_flow (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 57, in test_run_positive_flow\r\r\n    test_plan = TestPlan(tg1)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 71, in __init__\r\r\n    raise TypeError(\"only takes children of type `TestPlanChildElement`\")\r\r\nTypeError: only takes children of type `TestPlanChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_run_validate_order (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 104, in test_run_validate_order\r\r\n    test_plan = TestPlan(tg_setup, tg_main, tg_teardown, html_reporter)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 71, in __init__\r\r\n    raise TypeError(\"only takes children of type `TestPlanChildElement`\")\r\r\nTypeError: only takes children of type `TestPlanChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_uniform_random_timer (utests.test_timers.TestTimer)\r\r\nWhen the minimal time is 5000 milliseconds,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_timers.py\", line 17, in test_uniform_random_timer\r\r\n    test_plan = TestPlan(tg1)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 71, in __init__\r\r\n    raise TypeError(\"only takes children of type `TestPlanChildElement`\")\r\r\nTypeError: only takes children of type `TestPlanChildElement`\r\r\n\r\r\n----------------------------------------------------------------------\r\r\nRan 24 tests in 0.921s\r\r\n\r\r\nFAILED (errors=10)\r\r\n</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_3\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_3_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_3_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_3_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">3 : Job ID 96310dfef63f4682b448178036d31ffc</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_3_1\" data-parent=\"#job_list___sub_accordion_3\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_3_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\config.py&amp;line=92\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\config.py, start pos: (92, 11), end pos: (92, 14)</button></a></pre><pre>operator: core/ReplaceUnaryOperator_Delete_Not, occurrence: 1</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\config.py\r\n+++ bsrc\\pymeter\\api\\config.py\r\n@@ -89,7 +89,7 @@\r\n     \"\"\"base class for all thread groups\"\"\"\r\n \r\n     def __init__(self, *children: ThreadGroupChildElement) -&gt; None:\r\n-        if not all(isinstance(c, ThreadGroupChildElement) for c in children):\r\n+        if  all(isinstance(c, ThreadGroupChildElement) for c in children):\r\n             raise TypeError(\"only takes children of type `ThreadGroupChildElement`\")\r\n         super().__init__()\r\n </pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">EE....E.......EEEEEEEEEE\r\r\n======================================================================\r\r\nERROR: test_http_sampler (utests.test_postprocessors.TestSampler)\r\r\nsend request to postman echo\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_postprocessors.py\", line 21, in test_http_sampler\r\r\n    tg1 = ThreadGroupSimple(1, 1, http_sampler, dummy_sampler)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 137, in __init__\r\r\n    super().__init__(*children)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 93, in __init__\r\r\n    raise TypeError(\"only takes children of type `ThreadGroupChildElement`\")\r\r\nTypeError: only takes children of type `ThreadGroupChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_sampler (utests.test_reporter.TestReporter)\r\r\ncreate an HTML report\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_reporter.py\", line 17, in test_http_sampler\r\r\n    tg = ThreadGroupWithRampUpAndHold(2, 1, 2, http_sampler, name=\"Some Name\")\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 158, in __init__\r\r\n    super().__init__(*children)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 93, in __init__\r\r\n    raise TypeError(\"only takes children of type `ThreadGroupChildElement`\")\r\r\nTypeError: only takes children of type `ThreadGroupChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_sampler (utests.test_sampler.TestSampler)\r\r\nsend request to postman echo\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 15, in test_http_sampler\r\r\n    tg1 = ThreadGroupSimple(1, 1, http_sampler)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 137, in __init__\r\r\n    super().__init__(*children)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 93, in __init__\r\r\n    raise TypeError(\"only takes children of type `ThreadGroupChildElement`\")\r\r\nTypeError: only takes children of type `ThreadGroupChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_test_plan_with_valid_children (utests.test_test_plan.TestTestPlanClass)\r\r\nWhen children are passed through,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 31, in test_creation_of_test_plan_with_valid_children\r\r\n    tg1 = ThreadGroupWithRampUpAndHold(10, 10, 10)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 158, in __init__\r\r\n    super().__init__(*children)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 93, in __init__\r\r\n    raise TypeError(\"only takes children of type `ThreadGroupChildElement`\")\r\r\nTypeError: only takes children of type `ThreadGroupChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_run_empty_flow (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 89, in test_run_empty_flow\r\r\n    tg1 = ThreadGroupWithRampUpAndHold(1, 1, 1)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 158, in __init__\r\r\n    super().__init__(*children)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 93, in __init__\r\r\n    raise TypeError(\"only takes children of type `ThreadGroupChildElement`\")\r\r\nTypeError: only takes children of type `ThreadGroupChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_run_positive_flow (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 56, in test_run_positive_flow\r\r\n    tg1 = ThreadGroupWithRampUpAndHold(20, 1, 3, http_sampler)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 158, in __init__\r\r\n    super().__init__(*children)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 93, in __init__\r\r\n    raise TypeError(\"only takes children of type `ThreadGroupChildElement`\")\r\r\nTypeError: only takes children of type `ThreadGroupChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_run_validate_order (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 99, in test_run_validate_order\r\r\n    tg_setup = SetupThreadGroup(dummy_sampler_for_setup)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 102, in __init__\r\r\n    super().__init__(*children)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 93, in __init__\r\r\n    raise TypeError(\"only takes children of type `ThreadGroupChildElement`\")\r\r\nTypeError: only takes children of type `ThreadGroupChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_empty_setup_thread_group (utests.test_thread_group.TestThreadGroupClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 22, in test_creation_of_empty_setup_thread_group\r\r\n    python_thread_group_object = SetupThreadGroup()\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 102, in __init__\r\r\n    super().__init__(*children)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 93, in __init__\r\r\n    raise TypeError(\"only takes children of type `ThreadGroupChildElement`\")\r\r\nTypeError: only takes children of type `ThreadGroupChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_empty_teardown_thread_group (utests.test_thread_group.TestThreadGroupClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 30, in test_creation_of_empty_teardown_thread_group\r\r\n    python_thread_group_object = TeardownThreadGroup()\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 117, in __init__\r\r\n    super().__init__(*children)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 93, in __init__\r\r\n    raise TypeError(\"only takes children of type `ThreadGroupChildElement`\")\r\r\nTypeError: only takes children of type `ThreadGroupChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_empty_thread_group (utests.test_thread_group.TestThreadGroupClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 14, in test_creation_of_empty_thread_group\r\r\n    python_thread_group_object = ThreadGroupWithRampUpAndHold(1, 1, 1)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 158, in __init__\r\r\n    super().__init__(*children)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 93, in __init__\r\r\n    raise TypeError(\"only takes children of type `ThreadGroupChildElement`\")\r\r\nTypeError: only takes children of type `ThreadGroupChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_thread_group_with_invalid_children (utests.test_thread_group.TestThreadGroupClass)\r\r\nChildren must be of type ThreadGroupChildElement,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 50, in test_creation_of_thread_group_with_invalid_children\r\r\n    python_thread_group_object = ThreadGroupWithRampUpAndHold(\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 171, in __init__\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 171, in &lt;listcomp&gt;\r\r\n    *[c.java_wrapped_element for c in children]\r\r\nAttributeError: 'str' object has no attribute 'java_wrapped_element'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_thread_group_with_valid_children (utests.test_thread_group.TestThreadGroupClass)\r\r\nWhen children are passed through,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 40, in test_creation_of_thread_group_with_valid_children\r\r\n    python_thread_group_object = ThreadGroupWithRampUpAndHold(1, 1, 1, http_sampler)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 158, in __init__\r\r\n    super().__init__(*children)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 93, in __init__\r\r\n    raise TypeError(\"only takes children of type `ThreadGroupChildElement`\")\r\r\nTypeError: only takes children of type `ThreadGroupChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_uniform_random_timer (utests.test_timers.TestTimer)\r\r\nWhen the minimal time is 5000 milliseconds,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_timers.py\", line 16, in test_uniform_random_timer\r\r\n    tg1 = ThreadGroupSimple(1, 1, http_sampler)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 137, in __init__\r\r\n    super().__init__(*children)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 93, in __init__\r\r\n    raise TypeError(\"only takes children of type `ThreadGroupChildElement`\")\r\r\nTypeError: only takes children of type `ThreadGroupChildElement`\r\r\n\r\r\n----------------------------------------------------------------------\r\r\nRan 24 tests in 1.066s\r\r\n\r\r\nFAILED (errors=13)\r\r\n</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_4\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_4_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_4_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_4_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">4 : Job ID 29056f3055a34398ac5572eeb76208af</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_4_1\" data-parent=\"#job_list___sub_accordion_4\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_4_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\config.py&amp;line=70\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\config.py, start pos: (70, 11), end pos: (70, 73)</button></a></pre><pre>operator: core/AddNot, occurrence: 0</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\config.py\r\n+++ bsrc\\pymeter\\api\\config.py\r\n@@ -67,7 +67,7 @@\r\n             return self.java_wrapped_element.duration().toMillis()\r\n \r\n     def __init__(self, *children: TestPlanChildElement) -&gt; None:\r\n-        if not all(isinstance(c, TestPlanChildElement) for c in children):\r\n+        if not not all(isinstance(c, TestPlanChildElement) for c in children):\r\n             raise TypeError(\"only takes children of type `TestPlanChildElement`\")\r\n         self._test_plan_instance = BaseConfigElement.jmeter_class.testPlan()\r\n         if children:</pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">EE....E.....EEEEEE.....E\r\r\n======================================================================\r\r\nERROR: test_http_sampler (utests.test_postprocessors.TestSampler)\r\r\nsend request to postman echo\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_postprocessors.py\", line 24, in test_http_sampler\r\r\n    test_plan = TestPlan(tg1, html_reporter)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 71, in __init__\r\r\n    raise TypeError(\"only takes children of type `TestPlanChildElement`\")\r\r\nTypeError: only takes children of type `TestPlanChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_sampler (utests.test_reporter.TestReporter)\r\r\ncreate an HTML report\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_reporter.py\", line 20, in test_http_sampler\r\r\n    tp = TestPlan(tg, html_reporter)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 71, in __init__\r\r\n    raise TypeError(\"only takes children of type `TestPlanChildElement`\")\r\r\nTypeError: only takes children of type `TestPlanChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_sampler (utests.test_sampler.TestSampler)\r\r\nsend request to postman echo\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 16, in test_http_sampler\r\r\n    test_plan = TestPlan(tg1)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 71, in __init__\r\r\n    raise TypeError(\"only takes children of type `TestPlanChildElement`\")\r\r\nTypeError: only takes children of type `TestPlanChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_empty_test_plan (utests.test_test_plan.TestTestPlanClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 22, in test_creation_of_empty_test_plan\r\r\n    python_test_plan_object = TestPlan()\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 71, in __init__\r\r\n    raise TypeError(\"only takes children of type `TestPlanChildElement`\")\r\r\nTypeError: only takes children of type `TestPlanChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_test_plan_with_invalid_children (utests.test_test_plan.TestTestPlanClass)\r\r\nChildren must be of type TestPlanChildElement,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 43, in test_creation_of_test_plan_with_invalid_children\r\r\n    test_plan = TestPlan(1, \"aaa\")\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 75, in __init__\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 75, in &lt;listcomp&gt;\r\r\n    *[c.java_wrapped_element for c in children]\r\r\nAttributeError: 'int' object has no attribute 'java_wrapped_element'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_test_plan_with_valid_children (utests.test_test_plan.TestTestPlanClass)\r\r\nWhen children are passed through,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 33, in test_creation_of_test_plan_with_valid_children\r\r\n    test_plan = TestPlan(tg1, tg2)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 71, in __init__\r\r\n    raise TypeError(\"only takes children of type `TestPlanChildElement`\")\r\r\nTypeError: only takes children of type `TestPlanChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_run_empty_flow (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 90, in test_run_empty_flow\r\r\n    test_plan = TestPlan(tg1)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 71, in __init__\r\r\n    raise TypeError(\"only takes children of type `TestPlanChildElement`\")\r\r\nTypeError: only takes children of type `TestPlanChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_run_positive_flow (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 57, in test_run_positive_flow\r\r\n    test_plan = TestPlan(tg1)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 71, in __init__\r\r\n    raise TypeError(\"only takes children of type `TestPlanChildElement`\")\r\r\nTypeError: only takes children of type `TestPlanChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_run_validate_order (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 104, in test_run_validate_order\r\r\n    test_plan = TestPlan(tg_setup, tg_main, tg_teardown, html_reporter)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 71, in __init__\r\r\n    raise TypeError(\"only takes children of type `TestPlanChildElement`\")\r\r\nTypeError: only takes children of type `TestPlanChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_uniform_random_timer (utests.test_timers.TestTimer)\r\r\nWhen the minimal time is 5000 milliseconds,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_timers.py\", line 17, in test_uniform_random_timer\r\r\n    test_plan = TestPlan(tg1)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 71, in __init__\r\r\n    raise TypeError(\"only takes children of type `TestPlanChildElement`\")\r\r\nTypeError: only takes children of type `TestPlanChildElement`\r\r\n\r\r\n----------------------------------------------------------------------\r\r\nRan 24 tests in 1.543s\r\r\n\r\r\nFAILED (errors=10)\r\r\n</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_5\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_5_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_5_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_5_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">5 : Job ID b6959b8fd16d4b9cb0bd121f0ec73c34</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_5_1\" data-parent=\"#job_list___sub_accordion_5\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_5_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\config.py&amp;line=73\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\config.py, start pos: (73, 11), end pos: (73, 19)</button></a></pre><pre>operator: core/AddNot, occurrence: 1</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\config.py\r\n+++ bsrc\\pymeter\\api\\config.py\r\n@@ -70,7 +70,7 @@\r\n         if not all(isinstance(c, TestPlanChildElement) for c in children):\r\n             raise TypeError(\"only takes children of type `TestPlanChildElement`\")\r\n         self._test_plan_instance = BaseConfigElement.jmeter_class.testPlan()\r\n-        if children:\r\n+        if not children:\r\n             self._test_plan_instance.children(\r\n                 *[c.java_wrapped_element for c in children]\r\n             )</pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">Warning: Nashorn engine is planned to be removed from a future JDK release\r\r\n =      0 in 00:00:00 = ******/s Avg:     0 Min: 9223372036854775807 Max: -9223372036854775808 Err:     0 (0.00%)\r\r\nE =      0 in 00:00:00 = ******/s Avg:     0 Min: 9223372036854775807 Max: -9223372036854775808 Err:     0 (0.00%)\r\r\nF.... =      0 in 00:00:00 = ******/s Avg:     0 Min: 9223372036854775807 Max: -9223372036854775808 Err:     0 (0.00%)\r\r\n......... =      0 in 00:00:00 = ******/s Avg:     0 Min: 9223372036854775807 Max: -9223372036854775808 Err:     0 (0.00%)\r\r\n. =      0 in 00:00:00 = ******/s Avg:     0 Min: 9223372036854775807 Max: -9223372036854775808 Err:     0 (0.00%)\r\r\nF =      0 in 00:00:00 = ******/s Avg:     0 Min: 9223372036854775807 Max: -9223372036854775808 Err:     0 (0.00%)\r\r\nE..... =      0 in 00:00:00 = ******/s Avg:     0 Min: 9223372036854775807 Max: -9223372036854775808 Err:     0 (0.00%)\r\r\nF\r\r\n======================================================================\r\r\nERROR: test_http_sampler (utests.test_postprocessors.TestSampler)\r\r\nsend request to postman echo\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_postprocessors.py\", line 31, in test_http_sampler\r\r\n    with open(path_to_jtl, \"r\", encoding=\"utf-8\") as jtl_file:\r\r\nFileNotFoundError: [Errno 2] No such file or directory: 'output\\\\e6c377d0-a199-4232-b19b-7e4a75ad2bf1\\\\report.jtl'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_run_validate_order (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 108, in test_run_validate_order\r\r\n    with open(path_to_jtl, \"r\", encoding=\"utf-8\") as jtl_file:\r\r\nFileNotFoundError: [Errno 2] No such file or directory: 'output\\\\83d5f47e-0834-43e8-9b34-05a59b134cdb\\\\report.jtl'\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_http_sampler (utests.test_reporter.TestReporter)\r\r\ncreate an HTML report\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_reporter.py\", line 26, in test_http_sampler\r\r\n    self.assertTrue(os.path.exists(output_dir))\r\r\nAssertionError: False is not true\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_run_positive_flow (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 63, in test_run_positive_flow\r\r\n    self.assertGreaterEqual(stats.duration_milliseconds, 3000)\r\r\nAssertionError: 41 not greater than or equal to 3000\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_uniform_random_timer (utests.test_timers.TestTimer)\r\r\nWhen the minimal time is 5000 milliseconds,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_timers.py\", line 27, in test_uniform_random_timer\r\r\n    self.assertGreaterEqual(stats.duration_milliseconds, 2000)\r\r\nAssertionError: 34 not greater than or equal to 2000\r\r\n\r\r\n----------------------------------------------------------------------\r\r\nRan 24 tests in 13.404s\r\r\n\r\r\nFAILED (failures=3, errors=2)\r\r\n</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_6\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_6_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_6_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_6_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">6 : Job ID 568a813289e842ff971f7e9c541dd310</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_6_1\" data-parent=\"#job_list___sub_accordion_6\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_6_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\config.py&amp;line=92\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\config.py, start pos: (92, 11), end pos: (92, 76)</button></a></pre><pre>operator: core/AddNot, occurrence: 2</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\config.py\r\n+++ bsrc\\pymeter\\api\\config.py\r\n@@ -89,7 +89,7 @@\r\n     \"\"\"base class for all thread groups\"\"\"\r\n \r\n     def __init__(self, *children: ThreadGroupChildElement) -&gt; None:\r\n-        if not all(isinstance(c, ThreadGroupChildElement) for c in children):\r\n+        if not not all(isinstance(c, ThreadGroupChildElement) for c in children):\r\n             raise TypeError(\"only takes children of type `ThreadGroupChildElement`\")\r\n         super().__init__()\r\n </pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">EE....E.......EEEEEEEEEE\r\r\n======================================================================\r\r\nERROR: test_http_sampler (utests.test_postprocessors.TestSampler)\r\r\nsend request to postman echo\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_postprocessors.py\", line 21, in test_http_sampler\r\r\n    tg1 = ThreadGroupSimple(1, 1, http_sampler, dummy_sampler)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 137, in __init__\r\r\n    super().__init__(*children)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 93, in __init__\r\r\n    raise TypeError(\"only takes children of type `ThreadGroupChildElement`\")\r\r\nTypeError: only takes children of type `ThreadGroupChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_sampler (utests.test_reporter.TestReporter)\r\r\ncreate an HTML report\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_reporter.py\", line 17, in test_http_sampler\r\r\n    tg = ThreadGroupWithRampUpAndHold(2, 1, 2, http_sampler, name=\"Some Name\")\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 158, in __init__\r\r\n    super().__init__(*children)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 93, in __init__\r\r\n    raise TypeError(\"only takes children of type `ThreadGroupChildElement`\")\r\r\nTypeError: only takes children of type `ThreadGroupChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_sampler (utests.test_sampler.TestSampler)\r\r\nsend request to postman echo\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 15, in test_http_sampler\r\r\n    tg1 = ThreadGroupSimple(1, 1, http_sampler)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 137, in __init__\r\r\n    super().__init__(*children)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 93, in __init__\r\r\n    raise TypeError(\"only takes children of type `ThreadGroupChildElement`\")\r\r\nTypeError: only takes children of type `ThreadGroupChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_test_plan_with_valid_children (utests.test_test_plan.TestTestPlanClass)\r\r\nWhen children are passed through,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 31, in test_creation_of_test_plan_with_valid_children\r\r\n    tg1 = ThreadGroupWithRampUpAndHold(10, 10, 10)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 158, in __init__\r\r\n    super().__init__(*children)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 93, in __init__\r\r\n    raise TypeError(\"only takes children of type `ThreadGroupChildElement`\")\r\r\nTypeError: only takes children of type `ThreadGroupChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_run_empty_flow (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 89, in test_run_empty_flow\r\r\n    tg1 = ThreadGroupWithRampUpAndHold(1, 1, 1)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 158, in __init__\r\r\n    super().__init__(*children)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 93, in __init__\r\r\n    raise TypeError(\"only takes children of type `ThreadGroupChildElement`\")\r\r\nTypeError: only takes children of type `ThreadGroupChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_run_positive_flow (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 56, in test_run_positive_flow\r\r\n    tg1 = ThreadGroupWithRampUpAndHold(20, 1, 3, http_sampler)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 158, in __init__\r\r\n    super().__init__(*children)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 93, in __init__\r\r\n    raise TypeError(\"only takes children of type `ThreadGroupChildElement`\")\r\r\nTypeError: only takes children of type `ThreadGroupChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_run_validate_order (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 99, in test_run_validate_order\r\r\n    tg_setup = SetupThreadGroup(dummy_sampler_for_setup)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 102, in __init__\r\r\n    super().__init__(*children)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 93, in __init__\r\r\n    raise TypeError(\"only takes children of type `ThreadGroupChildElement`\")\r\r\nTypeError: only takes children of type `ThreadGroupChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_empty_setup_thread_group (utests.test_thread_group.TestThreadGroupClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 22, in test_creation_of_empty_setup_thread_group\r\r\n    python_thread_group_object = SetupThreadGroup()\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 102, in __init__\r\r\n    super().__init__(*children)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 93, in __init__\r\r\n    raise TypeError(\"only takes children of type `ThreadGroupChildElement`\")\r\r\nTypeError: only takes children of type `ThreadGroupChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_empty_teardown_thread_group (utests.test_thread_group.TestThreadGroupClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 30, in test_creation_of_empty_teardown_thread_group\r\r\n    python_thread_group_object = TeardownThreadGroup()\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 117, in __init__\r\r\n    super().__init__(*children)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 93, in __init__\r\r\n    raise TypeError(\"only takes children of type `ThreadGroupChildElement`\")\r\r\nTypeError: only takes children of type `ThreadGroupChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_empty_thread_group (utests.test_thread_group.TestThreadGroupClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 14, in test_creation_of_empty_thread_group\r\r\n    python_thread_group_object = ThreadGroupWithRampUpAndHold(1, 1, 1)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 158, in __init__\r\r\n    super().__init__(*children)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 93, in __init__\r\r\n    raise TypeError(\"only takes children of type `ThreadGroupChildElement`\")\r\r\nTypeError: only takes children of type `ThreadGroupChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_thread_group_with_invalid_children (utests.test_thread_group.TestThreadGroupClass)\r\r\nChildren must be of type ThreadGroupChildElement,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 50, in test_creation_of_thread_group_with_invalid_children\r\r\n    python_thread_group_object = ThreadGroupWithRampUpAndHold(\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 171, in __init__\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 171, in &lt;listcomp&gt;\r\r\n    *[c.java_wrapped_element for c in children]\r\r\nAttributeError: 'str' object has no attribute 'java_wrapped_element'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_thread_group_with_valid_children (utests.test_thread_group.TestThreadGroupClass)\r\r\nWhen children are passed through,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 40, in test_creation_of_thread_group_with_valid_children\r\r\n    python_thread_group_object = ThreadGroupWithRampUpAndHold(1, 1, 1, http_sampler)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 158, in __init__\r\r\n    super().__init__(*children)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 93, in __init__\r\r\n    raise TypeError(\"only takes children of type `ThreadGroupChildElement`\")\r\r\nTypeError: only takes children of type `ThreadGroupChildElement`\r\r\n\r\r\n======================================================================\r\r\nERROR: test_uniform_random_timer (utests.test_timers.TestTimer)\r\r\nWhen the minimal time is 5000 milliseconds,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_timers.py\", line 16, in test_uniform_random_timer\r\r\n    tg1 = ThreadGroupSimple(1, 1, http_sampler)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 137, in __init__\r\r\n    super().__init__(*children)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 93, in __init__\r\r\n    raise TypeError(\"only takes children of type `ThreadGroupChildElement`\")\r\r\nTypeError: only takes children of type `ThreadGroupChildElement`\r\r\n\r\r\n----------------------------------------------------------------------\r\r\nRan 24 tests in 1.767s\r\r\n\r\r\nFAILED (errors=13)\r\r\n</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_7\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_7_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_7_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_7_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">7 : Job ID 2d34fa2676964053b2b81450b88d7869</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_7_1\" data-parent=\"#job_list___sub_accordion_7\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_7_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\config.py&amp;line=106\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\config.py, start pos: (106, 11), end pos: (106, 19)</button></a></pre><pre>operator: core/AddNot, occurrence: 3</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\config.py\r\n+++ bsrc\\pymeter\\api\\config.py\r\n@@ -103,7 +103,7 @@\r\n         self._setup_thread_group_instance = (\r\n             BaseConfigElement.jmeter_class.setupThreadGroup()\r\n         )\r\n-        if children:\r\n+        if not children:\r\n             self._setup_thread_group_instance.children(\r\n                 *[c.java_wrapped_element for c in children]\r\n             )</pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">Warning: Nashorn engine is planned to be removed from a future JDK release\r\r\n...... =      1 in 00:00:01 =    1.6/s Avg:   594 Min:   594 Max:   594 Err:     0 (0.00%)\r\r\n......... =      0 in 00:00:00 = ******/s Avg:     0 Min: 9223372036854775807 Max: -9223372036854775808 Err:     0 (0.00%)\r\r\n. =    368 in 00:00:04 =   85.3/s Avg:   198 Min:   140 Max:   931 Err:     0 (0.00%)\r\r\n.FE.... =      1 in 00:00:03 =    0.4/s Avg:   629 Min:   629 Max:   629 Err:     0 (0.00%)\r\r\n.\r\r\n======================================================================\r\r\nERROR: test_creation_of_empty_setup_thread_group (utests.test_thread_group.TestThreadGroupClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 22, in test_creation_of_empty_setup_thread_group\r\r\n    python_thread_group_object = SetupThreadGroup()\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 107, in __init__\r\r\n    self._setup_thread_group_instance.children(\r\r\n  File \"jnius\\jnius_export_class.pxi\", line 1163, in jnius.JavaMultipleMethod.__call__\r\r\njnius.JavaException: No methods called children in us/abstracta/jmeter/javadsl/core/threadgroups/DslSetupThreadGroup matching your arguments, requested: (), available: ['([Lus/abstracta/jmeter/javadsl/core/threadgroups/BaseThreadGroup$ThreadGroupChild;)Lus/abstracta/jmeter/javadsl/core/threadgroups/BaseThreadGroup;', '([Lus/abstracta/jmeter/javadsl/core/threadgroups/BaseThreadGroup$ThreadGroupChild;)Lus/abstracta/jmeter/javadsl/core/threadgroups/DslSimpleThreadGroup;']\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_run_validate_order (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 111, in test_run_validate_order\r\r\n    self.assertListEqual([\"dummy_setup\", \"dummy_main\", \"dummy_teardown\"], lst)\r\r\nAssertionError: Lists differ: ['dummy_setup', 'dummy_main', 'dummy_teardown'] != ['dummy_main', 'dummy_teardown']\r\r\n\r\r\nFirst differing element 0:\r\r\n'dummy_setup'\r\r\n'dummy_main'\r\r\n\r\r\nFirst list contains 1 additional elements.\r\r\nFirst extra element 2:\r\r\n'dummy_teardown'\r\r\n\r\r\n- ['dummy_setup', 'dummy_main', 'dummy_teardown']\r\r\n?  ---------------\r\r\n\r\r\n+ ['dummy_main', 'dummy_teardown']\r\r\n\r\r\n----------------------------------------------------------------------\r\r\nRan 24 tests in 26.124s\r\r\n\r\r\nFAILED (failures=1, errors=1)\r\r\n</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_8\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_8_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_8_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_8_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">8 : Job ID b02b66aecf3549bdba43febdec3e9970</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_8_1\" data-parent=\"#job_list___sub_accordion_8\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_8_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\config.py&amp;line=121\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\config.py, start pos: (121, 11), end pos: (121, 19)</button></a></pre><pre>operator: core/AddNot, occurrence: 4</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\config.py\r\n+++ bsrc\\pymeter\\api\\config.py\r\n@@ -118,7 +118,7 @@\r\n         self._teardown_thread_group_instance = (\r\n             BaseConfigElement.jmeter_class.teardownThreadGroup()\r\n         )\r\n-        if children:\r\n+        if not children:\r\n             self._teardown_thread_group_instance.children(\r\n                 *[c.java_wrapped_element for c in children]\r\n             )</pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">Warning: Nashorn engine is planned to be removed from a future JDK release\r\r\n +      1 in 00:00:01 =    0.7/s Avg:   990 Min:   990 Max:   990 Err:     0 (0.00%) Active: 1 Started: 1 Finished: 0\r\r\n...... =      1 in 00:00:01 =    1.4/s Avg:   637 Min:   637 Max:   637 Err:     0 (0.00%)\r\r\n......... =      0 in 00:00:00 = ******/s Avg:     0 Min: 9223372036854775807 Max: -9223372036854775808 Err:     0 (0.00%)\r\r\n. =    413 in 00:00:04 =   98.4/s Avg:   173 Min:   139 Max:   659 Err:     0 (0.00%)\r\r\n.F.E... =      1 in 00:00:03 =    0.3/s Avg:   640 Min:   640 Max:   640 Err:     0 (0.00%)\r\r\n.\r\r\n======================================================================\r\r\nERROR: test_creation_of_empty_teardown_thread_group (utests.test_thread_group.TestThreadGroupClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 30, in test_creation_of_empty_teardown_thread_group\r\r\n    python_thread_group_object = TeardownThreadGroup()\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 122, in __init__\r\r\n    self._teardown_thread_group_instance.children(\r\r\n  File \"jnius\\jnius_export_class.pxi\", line 1163, in jnius.JavaMultipleMethod.__call__\r\r\njnius.JavaException: No methods called children in us/abstracta/jmeter/javadsl/core/threadgroups/DslTeardownThreadGroup matching your arguments, requested: (), available: ['([Lus/abstracta/jmeter/javadsl/core/threadgroups/BaseThreadGroup$ThreadGroupChild;)Lus/abstracta/jmeter/javadsl/core/threadgroups/BaseThreadGroup;', '([Lus/abstracta/jmeter/javadsl/core/threadgroups/BaseThreadGroup$ThreadGroupChild;)Lus/abstracta/jmeter/javadsl/core/threadgroups/DslSimpleThreadGroup;']\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_run_validate_order (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 111, in test_run_validate_order\r\r\n    self.assertListEqual([\"dummy_setup\", \"dummy_main\", \"dummy_teardown\"], lst)\r\r\nAssertionError: Lists differ: ['dummy_setup', 'dummy_main', 'dummy_teardown'] != ['dummy_setup', 'dummy_main']\r\r\n\r\r\nFirst list contains 1 additional elements.\r\r\nFirst extra element 2:\r\r\n'dummy_teardown'\r\r\n\r\r\n- ['dummy_setup', 'dummy_main', 'dummy_teardown']\r\r\n?                             ------------------\r\r\n\r\r\n+ ['dummy_setup', 'dummy_main']\r\r\n\r\r\n----------------------------------------------------------------------\r\r\nRan 24 tests in 25.291s\r\r\n\r\r\nFAILED (failures=1, errors=1)\r\r\n</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_9\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_9_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_9_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_9_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">9 : Job ID 76ce6403d4e74c12af2a8149b3d3c94c</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_9_1\" data-parent=\"#job_list___sub_accordion_9\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_9_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\config.py&amp;line=141\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\config.py, start pos: (141, 11), end pos: (141, 19)</button></a></pre><pre>operator: core/AddNot, occurrence: 5</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\config.py\r\n+++ bsrc\\pymeter\\api\\config.py\r\n@@ -138,7 +138,7 @@\r\n         self._thread_group_simple_instance = BaseConfigElement.jmeter_class.threadGroup(\r\n             name, number_of_threads, iterations\r\n         )\r\n-        if children:\r\n+        if not children:\r\n             self._thread_group_simple_instance.children(\r\n                 *[c.java_wrapped_element for c in children]\r\n             )</pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">Warning: Nashorn engine is planned to be removed from a future JDK release\r\r\nF..... =      0 in 00:00:00 = ******/s Avg:     0 Min: 9223372036854775807 Max: -9223372036854775808 Err:     0 (0.00%)\r\r\n......... =      0 in 00:00:00 = ******/s Avg:     0 Min: 9223372036854775807 Max: -9223372036854775808 Err:     0 (0.00%)\r\r\n. =    297 in 00:00:04 =   67.3/s Avg:   246 Min:   140 Max:  1153 Err:     0 (0.00%)\r\r\n.F..... =      0 in 00:00:00 = ******/s Avg:     0 Min: 9223372036854775807 Max: -9223372036854775808 Err:     0 (0.00%)\r\r\nF\r\r\n======================================================================\r\r\nFAIL: test_http_sampler (utests.test_postprocessors.TestSampler)\r\r\nsend request to postman echo\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_postprocessors.py\", line 33, in test_http_sampler\r\r\n    self.assertIn(\"dummy 1\", [line.split(\",\")[2] for line in jtl_file])\r\r\nAssertionError: 'dummy 1' not found in []\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_run_validate_order (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 111, in test_run_validate_order\r\r\n    self.assertListEqual([\"dummy_setup\", \"dummy_main\", \"dummy_teardown\"], lst)\r\r\nAssertionError: Lists differ: ['dummy_setup', 'dummy_main', 'dummy_teardown'] != ['dummy_setup', 'dummy_teardown']\r\r\n\r\r\nFirst differing element 1:\r\r\n'dummy_main'\r\r\n'dummy_teardown'\r\r\n\r\r\nFirst list contains 1 additional elements.\r\r\nFirst extra element 2:\r\r\n'dummy_teardown'\r\r\n\r\r\n- ['dummy_setup', 'dummy_main', 'dummy_teardown']\r\r\n?                --------------\r\r\n\r\r\n+ ['dummy_setup', 'dummy_teardown']\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_uniform_random_timer (utests.test_timers.TestTimer)\r\r\nWhen the minimal time is 5000 milliseconds,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_timers.py\", line 27, in test_uniform_random_timer\r\r\n    self.assertGreaterEqual(stats.duration_milliseconds, 2000)\r\r\nAssertionError: 68 not greater than or equal to 2000\r\r\n\r\r\n----------------------------------------------------------------------\r\r\nRan 24 tests in 25.845s\r\r\n\r\r\nFAILED (failures=3)\r\r\n</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_10\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_10_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_10_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_10_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">10 : Job ID 617649f15ce34c6aaf9fe27f458852da</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_10_1\" data-parent=\"#job_list___sub_accordion_10\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_10_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\config.py&amp;line=169\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\config.py, start pos: (169, 11), end pos: (169, 19)</button></a></pre><pre>operator: core/AddNot, occurrence: 6</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\config.py\r\n+++ bsrc\\pymeter\\api\\config.py\r\n@@ -166,7 +166,7 @@\r\n                 BaseConfigElement.java_duration.ofSeconds(holdup_time_seconds),\r\n             )\r\n         )\r\n-        if children:\r\n+        if not children:\r\n             self._ramp_to_and_hold_instance.children(\r\n                 *[c.java_wrapped_element for c in children]\r\n             )</pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">Warning: Nashorn engine is planned to be removed from a future JDK release\r\r\n +      1 in 00:00:01 =    0.7/s Avg:   994 Min:   994 Max:   994 Err:     0 (0.00%) Active: 1 Started: 1 Finished: 0\r\r\n.F.... =      1 in 00:00:01 =    1.3/s Avg:   684 Min:   684 Max:   684 Err:     0 (0.00%)\r\r\n........EE =      0 in 00:00:00 = ******/s Avg:     0 Min: 9223372036854775807 Max: -9223372036854775808 Err:     0 (0.00%)\r\r\nF...E.. =      1 in 00:00:03 =    0.3/s Avg:   622 Min:   622 Max:   622 Err:     0 (0.00%)\r\r\n.\r\r\n======================================================================\r\r\nERROR: test_creation_of_test_plan_with_valid_children (utests.test_test_plan.TestTestPlanClass)\r\r\nWhen children are passed through,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 31, in test_creation_of_test_plan_with_valid_children\r\r\n    tg1 = ThreadGroupWithRampUpAndHold(10, 10, 10)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 170, in __init__\r\r\n    self._ramp_to_and_hold_instance.children(\r\r\n  File \"jnius\\jnius_export_class.pxi\", line 1163, in jnius.JavaMultipleMethod.__call__\r\r\njnius.JavaException: No methods called children in us/abstracta/jmeter/javadsl/core/threadgroups/DslDefaultThreadGroup matching your arguments, requested: (), available: ['([Lus/abstracta/jmeter/javadsl/core/threadgroups/BaseThreadGroup$ThreadGroupChild;)Lus/abstracta/jmeter/javadsl/core/threadgroups/DslDefaultThreadGroup;', '([Lus/abstracta/jmeter/javadsl/core/threadgroups/BaseThreadGroup$ThreadGroupChild;)Lus/abstracta/jmeter/javadsl/core/threadgroups/BaseThreadGroup;']\r\r\n\r\r\n======================================================================\r\r\nERROR: test_run_empty_flow (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 89, in test_run_empty_flow\r\r\n    tg1 = ThreadGroupWithRampUpAndHold(1, 1, 1)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 170, in __init__\r\r\n    self._ramp_to_and_hold_instance.children(\r\r\n  File \"jnius\\jnius_export_class.pxi\", line 1163, in jnius.JavaMultipleMethod.__call__\r\r\njnius.JavaException: No methods called children in us/abstracta/jmeter/javadsl/core/threadgroups/DslDefaultThreadGroup matching your arguments, requested: (), available: ['([Lus/abstracta/jmeter/javadsl/core/threadgroups/BaseThreadGroup$ThreadGroupChild;)Lus/abstracta/jmeter/javadsl/core/threadgroups/DslDefaultThreadGroup;', '([Lus/abstracta/jmeter/javadsl/core/threadgroups/BaseThreadGroup$ThreadGroupChild;)Lus/abstracta/jmeter/javadsl/core/threadgroups/BaseThreadGroup;']\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_empty_thread_group (utests.test_thread_group.TestThreadGroupClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 14, in test_creation_of_empty_thread_group\r\r\n    python_thread_group_object = ThreadGroupWithRampUpAndHold(1, 1, 1)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 170, in __init__\r\r\n    self._ramp_to_and_hold_instance.children(\r\r\n  File \"jnius\\jnius_export_class.pxi\", line 1163, in jnius.JavaMultipleMethod.__call__\r\r\njnius.JavaException: No methods called children in us/abstracta/jmeter/javadsl/core/threadgroups/DslDefaultThreadGroup matching your arguments, requested: (), available: ['([Lus/abstracta/jmeter/javadsl/core/threadgroups/BaseThreadGroup$ThreadGroupChild;)Lus/abstracta/jmeter/javadsl/core/threadgroups/DslDefaultThreadGroup;', '([Lus/abstracta/jmeter/javadsl/core/threadgroups/BaseThreadGroup$ThreadGroupChild;)Lus/abstracta/jmeter/javadsl/core/threadgroups/BaseThreadGroup;']\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_http_sampler (utests.test_reporter.TestReporter)\r\r\ncreate an HTML report\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_reporter.py\", line 31, in test_http_sampler\r\r\n    self.assertTrue(os.path.exists(path_to_json))\r\r\nAssertionError: False is not true\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_run_positive_flow (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 63, in test_run_positive_flow\r\r\n    self.assertGreaterEqual(stats.duration_milliseconds, 3000)\r\r\nAssertionError: 1007 not greater than or equal to 3000\r\r\n\r\r\n----------------------------------------------------------------------\r\r\nRan 24 tests in 18.303s\r\r\n\r\r\nFAILED (failures=2, errors=3)\r\r\n</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_11\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_11_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_11_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-danger\" id=\"job_list___sub_heading_11_1\"><button class=\"btn btn-outline-danger\"><span class=\"job_id\">11 : Job ID e7614720176344ca8818bfb22d95630d</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_11_1\" data-parent=\"#job_list___sub_accordion_11\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_11_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-danger test-outcome\" role=\"alert\"><p>SURVIVED</p><p>worker outcome: normal</p><p>test outcome: survived</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\config.py&amp;line=83\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\config.py, start pos: (83, 15), end pos: (83, 28)</button></a></pre><pre>operator: core/ExceptionReplacer, occurrence: 0</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\config.py\r\n+++ bsrc\\pymeter\\api\\config.py\r\n@@ -80,7 +80,7 @@\r\n         \"\"\"execute the test plan\"\"\"\r\n         try:\r\n             return TestPlan.TestPlanStats(self._test_plan_instance.run())\r\n-        except JavaException as java_exception:\r\n+        except CosmicRayTestingException as java_exception:\r\n             print(\"\\n\\t at \".join(java_exception.stacktrace))\r\n             raise java_exception\r\n </pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">Warning: Nashorn engine is planned to be removed from a future JDK release\r\r\n...... +      1 in 00:00:01 =    1.4/s Avg:   611 Min:   611 Max:   611 Err:     0 (0.00%) Active: 1 Started: 1 Finished: 0\r\r\n =      1 in 00:00:01 =    1.4/s Avg:   611 Min:   611 Max:   611 Err:     0 (0.00%)\r\r\n......... =      0 in 00:00:00 = ******/s Avg:     0 Min: 9223372036854775807 Max: -9223372036854775808 Err:     0 (0.00%)\r\r\n. +      1 in 00:00:01 =    1.6/s Avg:   582 Min:   582 Max:   582 Err:     0 (0.00%) Active: 12 Started: 12 Finished: 0\r\r\n +    415 in 00:00:04 =  116.0/s Avg:   170 Min:   138 Max:   646 Err:     0 (0.00%) Active: 0 Started: 20 Finished: 20\r\r\n =    416 in 00:00:04 =   98.9/s Avg:   171 Min:   138 Max:   646 Err:     0 (0.00%)\r\r\n....... =      1 in 00:00:03 =    0.4/s Avg:   598 Min:   598 Max:   598 Err:     0 (0.00%)\r\r\n.\r\r\n----------------------------------------------------------------------\r\r\nRan 24 tests in 25.588s\r\r\n\r\r\nOK\r\r\n</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_12\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_12_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_12_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_12_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">12 : Job ID a131a214a05d493caf24b6ca82704fb6</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_12_1\" data-parent=\"#job_list___sub_accordion_12\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_12_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\config.py&amp;line=21\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\config.py, start pos: (21, 8), end pos: (22, 0)</button></a></pre><pre>operator: core/RemoveDecorator, occurrence: 0</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\config.py\r\n+++ bsrc\\pymeter\\api\\config.py\r\n@@ -17,8 +17,6 @@\r\n         def __init__(self, java_instance) -&gt; None:\r\n             self._test_plan_stats_instance = java_instance\r\n             super().__init__()\r\n-\r\n-        @property\r\n         def sample_time_mean_milliseconds(self):\r\n             \"\"\"returns the mean of sample times in milliseconds\"\"\"\r\n             return self.java_wrapped_element.overallStats.sampleTime().mean().toMillis()</pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">Warning: Nashorn engine is planned to be removed from a future JDK release\r\r\n...... =      1 in 00:00:01 =    1.5/s Avg:   626 Min:   626 Max:   626 Err:     0 (0.00%)\r\r\n......... =      0 in 00:00:00 = ******/s Avg:     0 Min: 9223372036854775807 Max: -9223372036854775808 Err:     0 (0.00%)\r\r\n. +      1 in 00:00:01 =    1.5/s Avg:   625 Min:   625 Max:   625 Err:     0 (0.00%) Active: 13 Started: 13 Finished: 0\r\r\n +    297 in 00:00:04 =   84.2/s Avg:   239 Min:   141 Max:  1584 Err:     0 (0.00%) Active: 0 Started: 20 Finished: 20\r\r\n =    298 in 00:00:04 =   71.1/s Avg:   240 Min:   141 Max:  1584 Err:     0 (0.00%)\r\r\nE...... =      1 in 00:00:03 =    0.4/s Avg:   669 Min:   669 Max:   669 Err:     0 (0.00%)\r\r\n.\r\r\n======================================================================\r\r\nERROR: test_run_positive_flow (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 64, in test_run_positive_flow\r\r\n    self.assertLessEqual(\r\r\n  File \"C:\\Python310\\lib\\unittest\\case.py\", line 1236, in assertLessEqual\r\r\n    if not a &lt;= b:\r\r\nTypeError: '&lt;=' not supported between instances of 'method' and 'int'\r\r\n\r\r\n----------------------------------------------------------------------\r\r\nRan 24 tests in 24.746s\r\r\n\r\r\nFAILED (errors=1)\r\r\n</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_13\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_13_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_13_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_13_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">13 : Job ID 229403e609d54251a9fba00b7fcdbc57</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_13_1\" data-parent=\"#job_list___sub_accordion_13\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_13_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\config.py&amp;line=26\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\config.py, start pos: (26, 8), end pos: (27, 0)</button></a></pre><pre>operator: core/RemoveDecorator, occurrence: 1</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\config.py\r\n+++ bsrc\\pymeter\\api\\config.py\r\n@@ -22,8 +22,6 @@\r\n         def sample_time_mean_milliseconds(self):\r\n             \"\"\"returns the mean of sample times in milliseconds\"\"\"\r\n             return self.java_wrapped_element.overallStats.sampleTime().mean().toMillis()\r\n-\r\n-        @property\r\n         def sample_time_min_milliseconds(self):\r\n             \"\"\"returns the min of sample times in milliseconds\"\"\"\r\n             return self.java_wrapped_element.overallStats.sampleTime().min().toMillis()</pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">timeout</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_14\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_14_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_14_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_14_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">14 : Job ID b47e3159d8104c3b89d56d316aef15a4</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_14_1\" data-parent=\"#job_list___sub_accordion_14\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_14_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\config.py&amp;line=31\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\config.py, start pos: (31, 8), end pos: (32, 0)</button></a></pre><pre>operator: core/RemoveDecorator, occurrence: 2</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\config.py\r\n+++ bsrc\\pymeter\\api\\config.py\r\n@@ -27,8 +27,6 @@\r\n         def sample_time_min_milliseconds(self):\r\n             \"\"\"returns the min of sample times in milliseconds\"\"\"\r\n             return self.java_wrapped_element.overallStats.sampleTime().min().toMillis()\r\n-\r\n-        @property\r\n         def sample_time_median_milliseconds(self):\r\n             \"\"\"returns the median of sample times in milliseconds\"\"\"\r\n             return (</pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">timeout</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_15\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_15_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_15_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_15_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">15 : Job ID 9614d57704a24ff1b0623904ac04ab79</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_15_1\" data-parent=\"#job_list___sub_accordion_15\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_15_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\config.py&amp;line=38\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\config.py, start pos: (38, 8), end pos: (39, 0)</button></a></pre><pre>operator: core/RemoveDecorator, occurrence: 3</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\config.py\r\n+++ bsrc\\pymeter\\api\\config.py\r\n@@ -34,8 +34,6 @@\r\n             return (\r\n                 self.java_wrapped_element.overallStats.sampleTime().median().toMillis()\r\n             )\r\n-\r\n-        @property\r\n         def sample_time_90_percentile_milliseconds(self):\r\n             \"\"\"returns the 90th percentile of sample times in milliseconds\"\"\"\r\n             return (</pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">Warning: Nashorn engine is planned to be removed from a future JDK release\r\r\n...... =      1 in 00:00:01 =    1.5/s Avg:   632 Min:   632 Max:   632 Err:     0 (0.00%)\r\r\n......... =      0 in 00:00:00 = ******/s Avg:     0 Min: 9223372036854775807 Max: -9223372036854775808 Err:     0 (0.00%)\r\r\n. +      1 in 00:00:01 =    1.4/s Avg:   664 Min:   664 Max:   664 Err:     0 (0.00%) Active: 14 Started: 14 Finished: 0\r\r\n +    407 in 00:00:03 =  117.6/s Avg:   174 Min:   139 Max:   642 Err:     0 (0.00%) Active: 0 Started: 20 Finished: 20\r\r\n =    408 in 00:00:04 =   97.5/s Avg:   175 Min:   139 Max:   664 Err:     0 (0.00%)\r\r\nE +      1 in 00:00:00 =  250.0/s Avg:    67 Min:    67 Max:    67 Err:     0 (0.00%) Active: 1 Started: 1 Finished: 0\r\r\n...... =      1 in 00:00:03 =    0.4/s Avg:   667 Min:   667 Max:   667 Err:     0 (0.00%)\r\r\n.\r\r\n======================================================================\r\r\nERROR: test_run_positive_flow (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 70, in test_run_positive_flow\r\r\n    self.assertLessEqual(\r\r\n  File \"C:\\Python310\\lib\\unittest\\case.py\", line 1236, in assertLessEqual\r\r\n    if not a &lt;= b:\r\r\nTypeError: '&lt;=' not supported between instances of 'int' and 'method'\r\r\n\r\r\n----------------------------------------------------------------------\r\r\nRan 24 tests in 27.377s\r\r\n\r\r\nFAILED (errors=1)\r\r\n</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_16\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_16_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_16_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_16_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">16 : Job ID b803c8d661874d9cada2b2d15836b244</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_16_1\" data-parent=\"#job_list___sub_accordion_16\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_16_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\config.py&amp;line=45\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\config.py, start pos: (45, 8), end pos: (46, 0)</button></a></pre><pre>operator: core/RemoveDecorator, occurrence: 4</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\config.py\r\n+++ bsrc\\pymeter\\api\\config.py\r\n@@ -41,8 +41,6 @@\r\n             return (\r\n                 self.java_wrapped_element.overallStats.sampleTime().perc90().toMillis()\r\n             )\r\n-\r\n-        @property\r\n         def sample_time_95_percentile_milliseconds(self):\r\n             \"\"\"returns the 95th percentile of sample times in milliseconds\"\"\"\r\n             return (</pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">Warning: Nashorn engine is planned to be removed from a future JDK release\r\r\n...... =      1 in 00:00:01 =    1.5/s Avg:   620 Min:   620 Max:   620 Err:     0 (0.00%)\r\r\n......... =      0 in 00:00:00 = ******/s Avg:     0 Min: 9223372036854775807 Max: -9223372036854775808 Err:     0 (0.00%)\r\r\n. +      1 in 00:00:01 =    1.5/s Avg:   644 Min:   644 Max:   644 Err:     0 (0.00%) Active: 13 Started: 13 Finished: 0\r\r\n +    324 in 00:00:04 =   86.8/s Avg:   227 Min:   139 Max:  1155 Err:     0 (0.00%) Active: 0 Started: 20 Finished: 20\r\r\n =    325 in 00:00:04 =   73.6/s Avg:   229 Min:   139 Max:  1155 Err:     0 (0.00%)\r\r\nE +      1 in 00:00:00 =   18.5/s Avg:   130 Min:   130 Max:   130 Err:     0 (0.00%) Active: 1 Started: 1 Finished: 0\r\r\n...... =      1 in 00:00:03 =    0.4/s Avg:   563 Min:   563 Max:   563 Err:     0 (0.00%)\r\r\n.\r\r\n======================================================================\r\r\nERROR: test_run_positive_flow (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 74, in test_run_positive_flow\r\r\n    self.assertLessEqual(\r\r\n  File \"C:\\Python310\\lib\\unittest\\case.py\", line 1236, in assertLessEqual\r\r\n    if not a &lt;= b:\r\r\nTypeError: '&lt;=' not supported between instances of 'int' and 'method'\r\r\n\r\r\n----------------------------------------------------------------------\r\r\nRan 24 tests in 25.915s\r\r\n\r\r\nFAILED (errors=1)\r\r\n</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_17\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_17_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_17_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_17_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">17 : Job ID f8420d1f0a8742d5b61fb0e721e684ec</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_17_1\" data-parent=\"#job_list___sub_accordion_17\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_17_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\config.py&amp;line=52\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\config.py, start pos: (52, 8), end pos: (53, 0)</button></a></pre><pre>operator: core/RemoveDecorator, occurrence: 5</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\config.py\r\n+++ bsrc\\pymeter\\api\\config.py\r\n@@ -48,8 +48,6 @@\r\n             return (\r\n                 self.java_wrapped_element.overallStats.sampleTime().perc95().toMillis()\r\n             )\r\n-\r\n-        @property\r\n         def sample_time_99_percentile_milliseconds(self):\r\n             \"\"\"returns the 99th percentile of sample times in milliseconds\"\"\"\r\n             return (</pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">Warning: Nashorn engine is planned to be removed from a future JDK release\r\r\n...... =      1 in 00:00:01 =    1.5/s Avg:   624 Min:   624 Max:   624 Err:     0 (0.00%)\r\r\n......... =      0 in 00:00:00 = ******/s Avg:     0 Min: 9223372036854775807 Max: -9223372036854775808 Err:     0 (0.00%)\r\r\n. +    317 in 00:00:04 =   90.5/s Avg:   182 Min:   140 Max:   674 Err:     0 (0.00%) Active: 20 Started: 20 Finished: 0\r\r\n +     75 in 00:00:01 =   54.0/s Avg:   254 Min:   141 Max:  1336 Err:     0 (0.00%) Active: 0 Started: 20 Finished: 20\r\r\n =    392 in 00:00:05 =   80.1/s Avg:   196 Min:   140 Max:  1336 Err:     0 (0.00%)\r\r\nE +      1 in 00:00:00 = 1000.0/s Avg:   469 Min:   469 Max:   469 Err:     0 (0.00%) Active: 1 Started: 1 Finished: 0\r\r\n...... =      1 in 00:00:03 =    0.4/s Avg:   595 Min:   595 Max:   595 Err:     0 (0.00%)\r\r\n.\r\r\n======================================================================\r\r\nERROR: test_run_positive_flow (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 78, in test_run_positive_flow\r\r\n    self.assertLessEqual(\r\r\n  File \"C:\\Python310\\lib\\unittest\\case.py\", line 1236, in assertLessEqual\r\r\n    if not a &lt;= b:\r\r\nTypeError: '&lt;=' not supported between instances of 'int' and 'method'\r\r\n\r\r\n----------------------------------------------------------------------\r\r\nRan 24 tests in 25.295s\r\r\n\r\r\nFAILED (errors=1)\r\r\n</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_18\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_18_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_18_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_18_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">18 : Job ID 6f65cb0c97324360a2885e00e2a661e1</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_18_1\" data-parent=\"#job_list___sub_accordion_18\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_18_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\config.py&amp;line=59\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\config.py, start pos: (59, 8), end pos: (60, 0)</button></a></pre><pre>operator: core/RemoveDecorator, occurrence: 6</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\config.py\r\n+++ bsrc\\pymeter\\api\\config.py\r\n@@ -55,8 +55,6 @@\r\n             return (\r\n                 self.java_wrapped_element.overallStats.sampleTime().perc99().toMillis()\r\n             )\r\n-\r\n-        @property\r\n         def sample_time_max_milliseconds(self):\r\n             \"\"\"returns the max of sample times in milliseconds\"\"\"\r\n             return self.java_wrapped_element.overallStats.sampleTime().max().toMillis()</pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">Warning: Nashorn engine is planned to be removed from a future JDK release\r\r\n...... =      1 in 00:00:01 =    1.5/s Avg:   595 Min:   595 Max:   595 Err:     0 (0.00%)\r\r\n......... =      0 in 00:00:00 = ******/s Avg:     0 Min: 9223372036854775807 Max: -9223372036854775808 Err:     0 (0.00%)\r\r\n. =    341 in 00:00:04 =   78.9/s Avg:   212 Min:   142 Max:  1100 Err:     0 (0.00%)\r\r\nE...... +      1 in 00:00:03 =    0.4/s Avg:   588 Min:   588 Max:   588 Err:     0 (0.00%) Active: 1 Started: 1 Finished: 0\r\r\n =      1 in 00:00:03 =    0.4/s Avg:   588 Min:   588 Max:   588 Err:     0 (0.00%)\r\r\n.\r\r\n======================================================================\r\r\nERROR: test_run_positive_flow (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 64, in test_run_positive_flow\r\r\n    self.assertLessEqual(\r\r\n  File \"C:\\Python310\\lib\\unittest\\case.py\", line 1236, in assertLessEqual\r\r\n    if not a &lt;= b:\r\r\nTypeError: '&lt;=' not supported between instances of 'int' and 'method'\r\r\n\r\r\n----------------------------------------------------------------------\r\r\nRan 24 tests in 24.561s\r\r\n\r\r\nFAILED (errors=1)\r\r\n</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_19\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_19_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_19_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_19_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">19 : Job ID 38a9b31edc3c479ba49d86d12a954f27</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_19_1\" data-parent=\"#job_list___sub_accordion_19\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_19_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\config.py&amp;line=64\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\config.py, start pos: (64, 8), end pos: (65, 0)</button></a></pre><pre>operator: core/RemoveDecorator, occurrence: 7</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\config.py\r\n+++ bsrc\\pymeter\\api\\config.py\r\n@@ -60,8 +60,6 @@\r\n         def sample_time_max_milliseconds(self):\r\n             \"\"\"returns the max of sample times in milliseconds\"\"\"\r\n             return self.java_wrapped_element.overallStats.sampleTime().max().toMillis()\r\n-\r\n-        @property\r\n         def duration_milliseconds(self):\r\n             \"\"\"returns the max of sample times in milliseconds\"\"\"\r\n             return self.java_wrapped_element.duration().toMillis()</pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">Warning: Nashorn engine is planned to be removed from a future JDK release\r\r\n...... =      1 in 00:00:01 =    1.5/s Avg:   635 Min:   635 Max:   635 Err:     0 (0.00%)\r\r\n......... =      0 in 00:00:00 = ******/s Avg:     0 Min: 9223372036854775807 Max: -9223372036854775808 Err:     0 (0.00%)\r\r\n. =    386 in 00:00:04 =   91.9/s Avg:   186 Min:   139 Max:   761 Err:     0 (0.00%)\r\r\nE...... =      1 in 00:00:03 =    0.4/s Avg:   602 Min:   602 Max:   602 Err:     0 (0.00%)\r\r\nE\r\r\n======================================================================\r\r\nERROR: test_run_positive_flow (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 63, in test_run_positive_flow\r\r\n    self.assertGreaterEqual(stats.duration_milliseconds, 3000)\r\r\n  File \"C:\\Python310\\lib\\unittest\\case.py\", line 1248, in assertGreaterEqual\r\r\n    if not a &gt;= b:\r\r\nTypeError: '&gt;=' not supported between instances of 'method' and 'int'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_uniform_random_timer (utests.test_timers.TestTimer)\r\r\nWhen the minimal time is 5000 milliseconds,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_timers.py\", line 27, in test_uniform_random_timer\r\r\n    self.assertGreaterEqual(stats.duration_milliseconds, 2000)\r\r\n  File \"C:\\Python310\\lib\\unittest\\case.py\", line 1248, in assertGreaterEqual\r\r\n    if not a &gt;= b:\r\r\nTypeError: '&gt;=' not supported between instances of 'method' and 'int'\r\r\n\r\r\n----------------------------------------------------------------------\r\r\nRan 24 tests in 24.010s\r\r\n\r\r\nFAILED (errors=2)\r\r\n</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_20\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_20_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_20_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_20_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">20 : Job ID 1ddf63ac36b345b8a41d9bc43c128b42</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_20_1\" data-parent=\"#job_list___sub_accordion_20\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_20_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\samplers.py&amp;line=45\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\samplers.py, start pos: (45, 13), end pos: (45, 16)</button></a></pre><pre>operator: core/ReplaceUnaryOperator_Delete_Not, occurrence: 0</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\samplers.py\r\n+++ bsrc\\pymeter\\api\\samplers.py\r\n@@ -42,7 +42,7 @@\r\n \r\n         if isinstance(body, (dict, list)):\r\n             body = json.dumps(body)\r\n-        elif not isinstance(body, str):\r\n+        elif  isinstance(body, str):\r\n             raise TypeError(\r\n                 f\"Invalid type, expected `list`, 'dict', or 'str'. got {type(body)}\"\r\n             )</pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">Warning: Nashorn engine is planned to be removed from a future JDK release\r\r\n +      1 in 00:00:01 =    0.7/s Avg:   981 Min:   981 Max:   981 Err:     0 (0.00%) Active: 1 Started: 1 Finished: 0\r\r\n...... =      1 in 00:00:01 =    1.5/s Avg:   628 Min:   628 Max:   628 Err:     0 (0.00%)\r\r\n...E.E... =      0 in 00:00:00 = ******/s Avg:     0 Min: 9223372036854775807 Max: -9223372036854775808 Err:     0 (0.00%)\r\r\n. =    397 in 00:00:05 =   80.2/s Avg:   197 Min:   140 Max:  1223 Err:     0 (0.00%)\r\r\n....... =      1 in 00:00:03 =    0.4/s Avg:   619 Min:   619 Max:   619 Err:     0 (0.00%)\r\r\n.\r\r\n======================================================================\r\r\nERROR: test_post_http_sampler_int_input (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 62, in test_post_http_sampler_int_input\r\r\n    ).post(1, ContentType.APPLICATION_JSON)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 50, in post\r\r\n    self._http_sampler_instance = self.java_wrapped_element.post(\r\r\n  File \"jnius\\jnius_export_class.pxi\", line 1163, in jnius.JavaMultipleMethod.__call__\r\r\njnius.JavaException: No methods called post in us/abstracta/jmeter/javadsl/http/DslHttpSampler matching your arguments, requested: (1, &lt;org.apache.http.entity.ContentType at 0x24fe40c6c50 jclass=org/apache/http/entity/ContentType jself=&lt;LocalRef obj=0x-1e230220 at 0x24fe40664b0&gt;&gt;), available: ['(Ljava/util/function/Function;Lorg/apache/http/entity/ContentType;)Lus/abstracta/jmeter/javadsl/http/DslHttpSampler;', '(Ljava/lang/String;Lorg/apache/http/entity/ContentType;)Lus/abstracta/jmeter/javadsl/http/DslHttpSampler;']\r\r\n\r\r\n======================================================================\r\r\nERROR: test_post_http_sampler_str_input (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 50, in test_post_http_sampler_str_input\r\r\n    ).post('{\"name\": \"John Doe\"}', ContentType.APPLICATION_JSON)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 46, in post\r\r\n    raise TypeError(\r\r\nTypeError: Invalid type, expected `list`, 'dict', or 'str'. got &lt;class 'str'&gt;\r\r\n\r\r\n----------------------------------------------------------------------\r\r\nRan 24 tests in 23.732s\r\r\n\r\r\nFAILED (errors=2)\r\r\n</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_21\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_21_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_21_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_21_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">21 : Job ID 3283c53ad239449c960175a43f2fae2a</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_21_1\" data-parent=\"#job_list___sub_accordion_21\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_21_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\samplers.py&amp;line=57\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\samplers.py, start pos: (57, 11), end pos: (57, 14)</button></a></pre><pre>operator: core/ReplaceUnaryOperator_Delete_Not, occurrence: 1</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\samplers.py\r\n+++ bsrc\\pymeter\\api\\samplers.py\r\n@@ -54,7 +54,7 @@\r\n \r\n     def header(self, key: str, value: str) -&gt; Self:\r\n         \"\"\"append header to request\"\"\"\r\n-        if not isinstance(key, str):\r\n+        if  isinstance(key, str):\r\n             raise TypeError(\"key field must be a string\")\r\n         if not isinstance(value, str):\r\n             raise TypeError(\"value field must be a string\")</pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">Warning: Nashorn engine is planned to be removed from a future JDK release\r\r\n +      1 in 00:00:01 =    0.7/s Avg:  1086 Min:  1086 Max:  1086 Err:     0 (0.00%) Active: 1 Started: 1 Finished: 0\r\r\n. +      1 in 00:00:01 =    1.5/s Avg:   631 Min:   631 Max:   631 Err:     0 (0.00%) Active: 2 Started: 2 Finished: 0\r\r\n.EEEF =      1 in 00:00:01 =    1.5/s Avg:   631 Min:   631 Max:   631 Err:     0 (0.00%)\r\r\n.E....... =      0 in 00:00:00 = ******/s Avg:     0 Min: 9223372036854775807 Max: -9223372036854775808 Err:     0 (0.00%)\r\r\n. =    408 in 00:00:04 =   98.0/s Avg:   174 Min:   140 Max:   642 Err:     0 (0.00%)\r\r\n....... =      1 in 00:00:03 =    0.4/s Avg:   613 Min:   613 Max:   613 Err:     0 (0.00%)\r\r\n.\r\r\n======================================================================\r\r\nERROR: test_http_2_headers (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 90, in test_http_2_headers\r\r\n    .header(\"key1\", \"val1\")\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 58, in header\r\r\n    raise TypeError(\"key field must be a string\")\r\r\nTypeError: key field must be a string\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_duplicated_header (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 105, in test_http_duplicated_header\r\r\n    .header(\"key1\", \"val1\")\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 58, in header\r\r\n    raise TypeError(\"key field must be a string\")\r\r\nTypeError: key field must be a string\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_invalid_header_key (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 119, in test_http_invalid_header_key\r\r\n    ).header(1, \"aa\")\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 61, in header\r\r\n    self._http_sampler_instance = self.java_wrapped_element.header(key, value)\r\r\n  File \"jnius\\jnius_export_class.pxi\", line 1163, in jnius.JavaMultipleMethod.__call__\r\r\njnius.JavaException: No methods called header in us/abstracta/jmeter/javadsl/http/DslHttpSampler matching your arguments, requested: (1, 'aa'), available: ['(Ljava/lang/String;Ljava/util/function/Function;)Lus/abstracta/jmeter/javadsl/http/DslBaseHttpSampler;', '(Ljava/lang/String;Ljava/lang/String;)Lus/abstracta/jmeter/javadsl/http/DslBaseHttpSampler;']\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_valid_header (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 77, in test_http_valid_header\r\r\n    ).header(\"key1\", \"val1\")\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 58, in header\r\r\n    raise TypeError(\"key field must be a string\")\r\r\nTypeError: key field must be a string\r\r\n\r\r\n======================================================================\r\r\nFAIL: test_http_invalid_header_value (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 140, in test_http_invalid_header_value\r\r\n    self.assertEqual(\r\r\nAssertionError: 'key field must be a string' != 'value field must be a string'\r\r\n- key field must be a string\r\r\n? ^ -\r\r\n+ value field must be a string\r\r\n? ^^^^\r\r\n\r\r\n\r\r\n----------------------------------------------------------------------\r\r\nRan 24 tests in 25.079s\r\r\n\r\r\nFAILED (failures=1, errors=4)\r\r\n</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_22\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_22_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_22_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_22_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">22 : Job ID ef1b5f32bdfc445eaf011a05ccd8aab1</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_22_1\" data-parent=\"#job_list___sub_accordion_22\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_22_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\samplers.py&amp;line=59\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\samplers.py, start pos: (59, 11), end pos: (59, 14)</button></a></pre><pre>operator: core/ReplaceUnaryOperator_Delete_Not, occurrence: 2</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\samplers.py\r\n+++ bsrc\\pymeter\\api\\samplers.py\r\n@@ -56,7 +56,7 @@\r\n         \"\"\"append header to request\"\"\"\r\n         if not isinstance(key, str):\r\n             raise TypeError(\"key field must be a string\")\r\n-        if not isinstance(value, str):\r\n+        if  isinstance(value, str):\r\n             raise TypeError(\"value field must be a string\")\r\n         self._http_sampler_instance = self.java_wrapped_element.header(key, value)\r\n         return self</pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">timeout</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_23\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_23_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_23_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_23_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">23 : Job ID d4b2e2e5a825495197e5fb98052694ef</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_23_1\" data-parent=\"#job_list___sub_accordion_23\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_23_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\samplers.py&amp;line=43\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\samplers.py, start pos: (43, 11), end pos: (43, 41)</button></a></pre><pre>operator: core/AddNot, occurrence: 0</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\samplers.py\r\n+++ bsrc\\pymeter\\api\\samplers.py\r\n@@ -40,7 +40,7 @@\r\n     def post(self, body: Union[Dict, List, str], content_type: ContentType) -&gt; Self:\r\n         \"\"\"create a post request sampler\"\"\"\r\n \r\n-        if isinstance(body, (dict, list)):\r\n+        if not isinstance(body, (dict, list)):\r\n             body = json.dumps(body)\r\n         elif not isinstance(body, str):\r\n             raise TypeError(</pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">timeout</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_24\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_24_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_24_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_24_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">24 : Job ID 24651175c47d4f1496511764be83f7e7</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_24_1\" data-parent=\"#job_list___sub_accordion_24\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_24_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\samplers.py&amp;line=57\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\samplers.py, start pos: (57, 11), end pos: (57, 35)</button></a></pre><pre>operator: core/AddNot, occurrence: 1</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\samplers.py\r\n+++ bsrc\\pymeter\\api\\samplers.py\r\n@@ -54,7 +54,7 @@\r\n \r\n     def header(self, key: str, value: str) -&gt; Self:\r\n         \"\"\"append header to request\"\"\"\r\n-        if not isinstance(key, str):\r\n+        if not not isinstance(key, str):\r\n             raise TypeError(\"key field must be a string\")\r\n         if not isinstance(value, str):\r\n             raise TypeError(\"value field must be a string\")</pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">timeout</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_25\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_25_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_25_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_25_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">25 : Job ID 7d2c63e1041a4c99a74c9af656f5a9a6</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_25_1\" data-parent=\"#job_list___sub_accordion_25\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_25_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\samplers.py&amp;line=59\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\samplers.py, start pos: (59, 11), end pos: (59, 37)</button></a></pre><pre>operator: core/AddNot, occurrence: 2</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\samplers.py\r\n+++ bsrc\\pymeter\\api\\samplers.py\r\n@@ -56,7 +56,7 @@\r\n         \"\"\"append header to request\"\"\"\r\n         if not isinstance(key, str):\r\n             raise TypeError(\"key field must be a string\")\r\n-        if not isinstance(value, str):\r\n+        if not not isinstance(value, str):\r\n             raise TypeError(\"value field must be a string\")\r\n         self._http_sampler_instance = self.java_wrapped_element.header(key, value)\r\n         return self</pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">timeout</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_26\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_26_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_26_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_26_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">26 : Job ID b3d75baec1a74f4db981748627c7ce2c</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_26_1\" data-parent=\"#job_list___sub_accordion_26\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_26_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\samplers.py&amp;line=8\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\samplers.py, start pos: (8, 7), end pos: (8, 18)</button></a></pre><pre>operator: core/ExceptionReplacer, occurrence: 0</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\samplers.py\r\n+++ bsrc\\pymeter\\api\\samplers.py\r\n@@ -5,7 +5,7 @@\r\n \r\n try:\r\n     from typing import Self\r\n-except ImportError:\r\n+except CosmicRayTestingException:\r\n     from typing_extensions import Self\r\n from pymeter.api import ThreadGroupChildElement, ContentType\r\n </pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">EEEEEE\r\r\n======================================================================\r\r\nERROR: utests.test_postprocessors (unittest.loader._FailedTest)\r\r\n----------------------------------------------------------------------\r\r\nImportError: Failed to import test module: utests.test_postprocessors\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 7, in &lt;module&gt;\r\r\n    from typing import Self\r\r\nImportError: cannot import name 'Self' from 'typing' (C:\\Python310\\lib\\typing.py)\r\r\n\r\r\nDuring handling of the above exception, another exception occurred:\r\r\n\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\Python310\\lib\\unittest\\loader.py\", line 436, in _find_test_path\r\r\n    module = self._get_module_from_name(name)\r\r\n  File \"C:\\Python310\\lib\\unittest\\loader.py\", line 377, in _get_module_from_name\r\r\n    __import__(name)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_postprocessors.py\", line 8, in &lt;module&gt;\r\r\n    from pymeter.api.samplers import DummySampler, HttpSampler\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 8, in &lt;module&gt;\r\r\n    except CosmicRayTestingException:\r\r\nNameError: name 'CosmicRayTestingException' is not defined\r\r\n\r\r\n\r\r\n======================================================================\r\r\nERROR: utests.test_reporter (unittest.loader._FailedTest)\r\r\n----------------------------------------------------------------------\r\r\nImportError: Failed to import test module: utests.test_reporter\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 7, in &lt;module&gt;\r\r\n    from typing import Self\r\r\nImportError: cannot import name 'Self' from 'typing' (C:\\Python310\\lib\\typing.py)\r\r\n\r\r\nDuring handling of the above exception, another exception occurred:\r\r\n\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\Python310\\lib\\unittest\\loader.py\", line 436, in _find_test_path\r\r\n    module = self._get_module_from_name(name)\r\r\n  File \"C:\\Python310\\lib\\unittest\\loader.py\", line 377, in _get_module_from_name\r\r\n    __import__(name)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_reporter.py\", line 8, in &lt;module&gt;\r\r\n    from pymeter.api.samplers import HttpSampler\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 8, in &lt;module&gt;\r\r\n    except CosmicRayTestingException:\r\r\nNameError: name 'CosmicRayTestingException' is not defined\r\r\n\r\r\n\r\r\n======================================================================\r\r\nERROR: utests.test_sampler (unittest.loader._FailedTest)\r\r\n----------------------------------------------------------------------\r\r\nImportError: Failed to import test module: utests.test_sampler\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 7, in &lt;module&gt;\r\r\n    from typing import Self\r\r\nImportError: cannot import name 'Self' from 'typing' (C:\\Python310\\lib\\typing.py)\r\r\n\r\r\nDuring handling of the above exception, another exception occurred:\r\r\n\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\Python310\\lib\\unittest\\loader.py\", line 436, in _find_test_path\r\r\n    module = self._get_module_from_name(name)\r\r\n  File \"C:\\Python310\\lib\\unittest\\loader.py\", line 377, in _get_module_from_name\r\r\n    __import__(name)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 5, in &lt;module&gt;\r\r\n    from pymeter.api.samplers import HttpSampler\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 8, in &lt;module&gt;\r\r\n    except CosmicRayTestingException:\r\r\nNameError: name 'CosmicRayTestingException' is not defined\r\r\n\r\r\n\r\r\n======================================================================\r\r\nERROR: utests.test_test_plan (unittest.loader._FailedTest)\r\r\n----------------------------------------------------------------------\r\r\nImportError: Failed to import test module: utests.test_test_plan\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 7, in &lt;module&gt;\r\r\n    from typing import Self\r\r\nImportError: cannot import name 'Self' from 'typing' (C:\\Python310\\lib\\typing.py)\r\r\n\r\r\nDuring handling of the above exception, another exception occurred:\r\r\n\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\Python310\\lib\\unittest\\loader.py\", line 436, in _find_test_path\r\r\n    module = self._get_module_from_name(name)\r\r\n  File \"C:\\Python310\\lib\\unittest\\loader.py\", line 377, in _get_module_from_name\r\r\n    __import__(name)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 14, in &lt;module&gt;\r\r\n    from pymeter.api.samplers import DummySampler, HttpSampler\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 8, in &lt;module&gt;\r\r\n    except CosmicRayTestingException:\r\r\nNameError: name 'CosmicRayTestingException' is not defined\r\r\n\r\r\n\r\r\n======================================================================\r\r\nERROR: utests.test_thread_group (unittest.loader._FailedTest)\r\r\n----------------------------------------------------------------------\r\r\nImportError: Failed to import test module: utests.test_thread_group\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 7, in &lt;module&gt;\r\r\n    from typing import Self\r\r\nImportError: cannot import name 'Self' from 'typing' (C:\\Python310\\lib\\typing.py)\r\r\n\r\r\nDuring handling of the above exception, another exception occurred:\r\r\n\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\Python310\\lib\\unittest\\loader.py\", line 436, in _find_test_path\r\r\n    module = self._get_module_from_name(name)\r\r\n  File \"C:\\Python310\\lib\\unittest\\loader.py\", line 377, in _get_module_from_name\r\r\n    __import__(name)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 6, in &lt;module&gt;\r\r\n    from pymeter.api.samplers import HttpSampler\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 8, in &lt;module&gt;\r\r\n    except CosmicRayTestingException:\r\r\nNameError: name 'CosmicRayTestingException' is not defined\r\r\n\r\r\n\r\r\n======================================================================\r\r\nERROR: utests.test_timers (unittest.loader._FailedTest)\r\r\n----------------------------------------------------------------------\r\r\nImportError: Failed to import test module: utests.test_timers\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 7, in &lt;module&gt;\r\r\n    from typing import Self\r\r\nImportError: cannot import name 'Self' from 'typing' (C:\\Python310\\lib\\typing.py)\r\r\n\r\r\nDuring handling of the above exception, another exception occurred:\r\r\n\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\Python310\\lib\\unittest\\loader.py\", line 436, in _find_test_path\r\r\n    module = self._get_module_from_name(name)\r\r\n  File \"C:\\Python310\\lib\\unittest\\loader.py\", line 377, in _get_module_from_name\r\r\n    __import__(name)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_timers.py\", line 4, in &lt;module&gt;\r\r\n    from pymeter.api.samplers import HttpSampler\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 8, in &lt;module&gt;\r\r\n    except CosmicRayTestingException:\r\r\nNameError: name 'CosmicRayTestingException' is not defined\r\r\n\r\r\n\r\r\n----------------------------------------------------------------------\r\r\nRan 6 tests in 0.002s\r\r\n\r\r\nFAILED (errors=6)\r\r\n</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_27\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_27_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_27_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_27_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">27 : Job ID 455165bb65414388b81e0320b9d31614</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_27_1\" data-parent=\"#job_list___sub_accordion_27\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_27_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\__init__.py&amp;line=242\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\__init__.py, start pos: (242, 11), end pos: (242, 14)</button></a></pre><pre>operator: core/ReplaceUnaryOperator_Delete_Not, occurrence: 0</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\__init__.py\r\n+++ bsrc\\pymeter\\api\\__init__.py\r\n@@ -239,7 +239,7 @@\r\n     @property\r\n     def java_wrapped_element(self):\r\n         \"\"\"retrieves the java element wrapped in the python object by class name\"\"\"\r\n-        if not self.__class__.wrapped_instance_name:\r\n+        if  self.__class__.wrapped_instance_name:\r\n             self.__class__.wrapped_instance_name = BaseJMeterClass.pattern.sub(\r\n                 \"_\", self.__class__.__name__\r\n             ).lower()</pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">EEEE..EEE.EEE.EEEEEEE.EE\r\r\n======================================================================\r\r\nERROR: test_http_sampler (utests.test_postprocessors.TestSampler)\r\r\nsend request to postman echo\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_postprocessors.py\", line 17, in test_http_sampler\r\r\n    http_sampler = HttpSampler(\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 36, in __init__\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 36, in &lt;listcomp&gt;\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'JsonExtractor' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_sampler (utests.test_reporter.TestReporter)\r\r\ncreate an HTML report\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_reporter.py\", line 17, in test_http_sampler\r\r\n    tg = ThreadGroupWithRampUpAndHold(2, 1, 2, http_sampler, name=\"Some Name\")\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 171, in __init__\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 171, in &lt;listcomp&gt;\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'HttpSampler' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_2_headers (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 90, in test_http_2_headers\r\r\n    .header(\"key1\", \"val1\")\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 61, in header\r\r\n    self._http_sampler_instance = self.java_wrapped_element.header(key, value)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'HttpSampler' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_duplicated_header (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 105, in test_http_duplicated_header\r\r\n    .header(\"key1\", \"val1\")\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 61, in header\r\r\n    self._http_sampler_instance = self.java_wrapped_element.header(key, value)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'HttpSampler' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_sampler (utests.test_sampler.TestSampler)\r\r\nsend request to postman echo\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 15, in test_http_sampler\r\r\n    tg1 = ThreadGroupSimple(1, 1, http_sampler)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 143, in __init__\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 143, in &lt;listcomp&gt;\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'HttpSampler' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_valid_header (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 77, in test_http_valid_header\r\r\n    ).header(\"key1\", \"val1\")\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 61, in header\r\r\n    self._http_sampler_instance = self.java_wrapped_element.header(key, value)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'HttpSampler' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_post_http_sampler_dict_input (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 28, in test_post_http_sampler_dict_input\r\r\n    ).post({\"var1\": 1}, ContentType.APPLICATION_JSON)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 50, in post\r\r\n    self._http_sampler_instance = self.java_wrapped_element.post(\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'HttpSampler' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_post_http_sampler_list_input (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 39, in test_post_http_sampler_list_input\r\r\n    ).post([1, 2, 3, 4], ContentType.APPLICATION_JSON)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 50, in post\r\r\n    self._http_sampler_instance = self.java_wrapped_element.post(\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'HttpSampler' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_post_http_sampler_str_input (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 50, in test_post_http_sampler_str_input\r\r\n    ).post('{\"name\": \"John Doe\"}', ContentType.APPLICATION_JSON)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 50, in post\r\r\n    self._http_sampler_instance = self.java_wrapped_element.post(\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'HttpSampler' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_empty_test_plan (utests.test_test_plan.TestTestPlanClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 24, in test_creation_of_empty_test_plan\r\r\n    python_test_plan_object.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'TestPlan' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_test_plan_with_valid_children (utests.test_test_plan.TestTestPlanClass)\r\r\nWhen children are passed through,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 33, in test_creation_of_test_plan_with_valid_children\r\r\n    test_plan = TestPlan(tg1, tg2)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 75, in __init__\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 75, in &lt;listcomp&gt;\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'ThreadGroupWithRampUpAndHold' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_run_empty_flow (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 90, in test_run_empty_flow\r\r\n    test_plan = TestPlan(tg1)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 75, in __init__\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 75, in &lt;listcomp&gt;\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'ThreadGroupWithRampUpAndHold' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_run_positive_flow (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 56, in test_run_positive_flow\r\r\n    tg1 = ThreadGroupWithRampUpAndHold(20, 1, 3, http_sampler)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 171, in __init__\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 171, in &lt;listcomp&gt;\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'HttpSampler' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_run_validate_order (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 99, in test_run_validate_order\r\r\n    tg_setup = SetupThreadGroup(dummy_sampler_for_setup)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 108, in __init__\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 108, in &lt;listcomp&gt;\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'DummySampler' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_empty_setup_thread_group (utests.test_thread_group.TestThreadGroupClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 24, in test_creation_of_empty_setup_thread_group\r\r\n    python_thread_group_object.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'SetupThreadGroup' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_empty_teardown_thread_group (utests.test_thread_group.TestThreadGroupClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 32, in test_creation_of_empty_teardown_thread_group\r\r\n    python_thread_group_object.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'TeardownThreadGroup' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_empty_thread_group (utests.test_thread_group.TestThreadGroupClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 16, in test_creation_of_empty_thread_group\r\r\n    python_thread_group_object.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'ThreadGroupWithRampUpAndHold' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_thread_group_with_valid_children (utests.test_thread_group.TestThreadGroupClass)\r\r\nWhen children are passed through,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 40, in test_creation_of_thread_group_with_valid_children\r\r\n    python_thread_group_object = ThreadGroupWithRampUpAndHold(1, 1, 1, http_sampler)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 171, in __init__\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 171, in &lt;listcomp&gt;\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'HttpSampler' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_uniform_random_timer (utests.test_timers.TestTimer)\r\r\nWhen the minimal time is 5000 milliseconds,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_timers.py\", line 15, in test_uniform_random_timer\r\r\n    http_sampler = HttpSampler(\"Echo\", \"https://postman-echo.com/get?var=1\", timer)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 36, in __init__\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 36, in &lt;listcomp&gt;\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'UniformRandomTimer' object has no attribute '_None_instance'\r\r\n\r\r\n----------------------------------------------------------------------\r\r\nRan 24 tests in 2.383s\r\r\n\r\r\nFAILED (errors=19)\r\r\n</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_28\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_28_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_28_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_28_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">28 : Job ID 5fdd6d5e88f2432b9bcd581f0d590db1</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_28_1\" data-parent=\"#job_list___sub_accordion_28\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_28_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\__init__.py&amp;line=242\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\__init__.py, start pos: (242, 11), end pos: (242, 51)</button></a></pre><pre>operator: core/AddNot, occurrence: 0</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\__init__.py\r\n+++ bsrc\\pymeter\\api\\__init__.py\r\n@@ -239,7 +239,7 @@\r\n     @property\r\n     def java_wrapped_element(self):\r\n         \"\"\"retrieves the java element wrapped in the python object by class name\"\"\"\r\n-        if not self.__class__.wrapped_instance_name:\r\n+        if not not self.__class__.wrapped_instance_name:\r\n             self.__class__.wrapped_instance_name = BaseJMeterClass.pattern.sub(\r\n                 \"_\", self.__class__.__name__\r\n             ).lower()</pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">EEEE..EEE.EEE.EEEEEEE.EE\r\r\n======================================================================\r\r\nERROR: test_http_sampler (utests.test_postprocessors.TestSampler)\r\r\nsend request to postman echo\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_postprocessors.py\", line 17, in test_http_sampler\r\r\n    http_sampler = HttpSampler(\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 36, in __init__\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 36, in &lt;listcomp&gt;\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'JsonExtractor' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_sampler (utests.test_reporter.TestReporter)\r\r\ncreate an HTML report\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_reporter.py\", line 17, in test_http_sampler\r\r\n    tg = ThreadGroupWithRampUpAndHold(2, 1, 2, http_sampler, name=\"Some Name\")\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 171, in __init__\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 171, in &lt;listcomp&gt;\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'HttpSampler' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_2_headers (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 90, in test_http_2_headers\r\r\n    .header(\"key1\", \"val1\")\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 61, in header\r\r\n    self._http_sampler_instance = self.java_wrapped_element.header(key, value)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'HttpSampler' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_duplicated_header (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 105, in test_http_duplicated_header\r\r\n    .header(\"key1\", \"val1\")\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 61, in header\r\r\n    self._http_sampler_instance = self.java_wrapped_element.header(key, value)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'HttpSampler' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_sampler (utests.test_sampler.TestSampler)\r\r\nsend request to postman echo\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 15, in test_http_sampler\r\r\n    tg1 = ThreadGroupSimple(1, 1, http_sampler)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 143, in __init__\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 143, in &lt;listcomp&gt;\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'HttpSampler' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_valid_header (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 77, in test_http_valid_header\r\r\n    ).header(\"key1\", \"val1\")\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 61, in header\r\r\n    self._http_sampler_instance = self.java_wrapped_element.header(key, value)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'HttpSampler' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_post_http_sampler_dict_input (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 28, in test_post_http_sampler_dict_input\r\r\n    ).post({\"var1\": 1}, ContentType.APPLICATION_JSON)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 50, in post\r\r\n    self._http_sampler_instance = self.java_wrapped_element.post(\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'HttpSampler' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_post_http_sampler_list_input (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 39, in test_post_http_sampler_list_input\r\r\n    ).post([1, 2, 3, 4], ContentType.APPLICATION_JSON)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 50, in post\r\r\n    self._http_sampler_instance = self.java_wrapped_element.post(\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'HttpSampler' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_post_http_sampler_str_input (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 50, in test_post_http_sampler_str_input\r\r\n    ).post('{\"name\": \"John Doe\"}', ContentType.APPLICATION_JSON)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 50, in post\r\r\n    self._http_sampler_instance = self.java_wrapped_element.post(\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'HttpSampler' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_empty_test_plan (utests.test_test_plan.TestTestPlanClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 24, in test_creation_of_empty_test_plan\r\r\n    python_test_plan_object.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'TestPlan' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_test_plan_with_valid_children (utests.test_test_plan.TestTestPlanClass)\r\r\nWhen children are passed through,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 33, in test_creation_of_test_plan_with_valid_children\r\r\n    test_plan = TestPlan(tg1, tg2)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 75, in __init__\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 75, in &lt;listcomp&gt;\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'ThreadGroupWithRampUpAndHold' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_run_empty_flow (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 90, in test_run_empty_flow\r\r\n    test_plan = TestPlan(tg1)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 75, in __init__\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 75, in &lt;listcomp&gt;\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'ThreadGroupWithRampUpAndHold' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_run_positive_flow (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 56, in test_run_positive_flow\r\r\n    tg1 = ThreadGroupWithRampUpAndHold(20, 1, 3, http_sampler)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 171, in __init__\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 171, in &lt;listcomp&gt;\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'HttpSampler' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_run_validate_order (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 99, in test_run_validate_order\r\r\n    tg_setup = SetupThreadGroup(dummy_sampler_for_setup)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 108, in __init__\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 108, in &lt;listcomp&gt;\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'DummySampler' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_empty_setup_thread_group (utests.test_thread_group.TestThreadGroupClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 24, in test_creation_of_empty_setup_thread_group\r\r\n    python_thread_group_object.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'SetupThreadGroup' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_empty_teardown_thread_group (utests.test_thread_group.TestThreadGroupClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 32, in test_creation_of_empty_teardown_thread_group\r\r\n    python_thread_group_object.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'TeardownThreadGroup' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_empty_thread_group (utests.test_thread_group.TestThreadGroupClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 16, in test_creation_of_empty_thread_group\r\r\n    python_thread_group_object.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'ThreadGroupWithRampUpAndHold' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_thread_group_with_valid_children (utests.test_thread_group.TestThreadGroupClass)\r\r\nWhen children are passed through,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 40, in test_creation_of_thread_group_with_valid_children\r\r\n    python_thread_group_object = ThreadGroupWithRampUpAndHold(1, 1, 1, http_sampler)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 171, in __init__\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 171, in &lt;listcomp&gt;\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'HttpSampler' object has no attribute '_None_instance'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_uniform_random_timer (utests.test_timers.TestTimer)\r\r\nWhen the minimal time is 5000 milliseconds,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_timers.py\", line 15, in test_uniform_random_timer\r\r\n    http_sampler = HttpSampler(\"Echo\", \"https://postman-echo.com/get?var=1\", timer)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 36, in __init__\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 36, in &lt;listcomp&gt;\r\r\n    *[c.java_wrapped_element for c in children]\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 247, in java_wrapped_element\r\r\n    return object.__getattribute__(\r\r\nAttributeError: 'UniformRandomTimer' object has no attribute '_None_instance'\r\r\n\r\r\n----------------------------------------------------------------------\r\r\nRan 24 tests in 2.012s\r\r\n\r\r\nFAILED (errors=19)\r\r\n</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_29\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_29_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_29_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_29_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">29 : Job ID 99788c74b1974ce184564223b86b1006</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_29_1\" data-parent=\"#job_list___sub_accordion_29\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_29_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\__init__.py&amp;line=233\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\__init__.py, start pos: (233, 29), end pos: (233, 30)</button></a></pre><pre>operator: core/NumberReplacer, occurrence: 0</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\__init__.py\r\n+++ bsrc\\pymeter\\api\\__init__.py\r\n@@ -230,7 +230,7 @@\r\n \r\n         return (\r\n             str(type(self.java_wrapped_element))\r\n-            .split(\"class \")[1]\r\n+            .split(\"class \")[ 2]\r\n             .split(\"'jnius.reflect.\")[1]\r\n             .split(\"'\")[0]\r\n             .strip()</pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">timeout</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_30\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_30_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_30_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_30_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">30 : Job ID 099fb1ec21f34de8a6ba14bcb048a7fe</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_30_1\" data-parent=\"#job_list___sub_accordion_30\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_30_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\__init__.py&amp;line=233\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\__init__.py, start pos: (233, 29), end pos: (233, 30)</button></a></pre><pre>operator: core/NumberReplacer, occurrence: 1</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\__init__.py\r\n+++ bsrc\\pymeter\\api\\__init__.py\r\n@@ -230,7 +230,7 @@\r\n \r\n         return (\r\n             str(type(self.java_wrapped_element))\r\n-            .split(\"class \")[1]\r\n+            .split(\"class \")[ 0]\r\n             .split(\"'jnius.reflect.\")[1]\r\n             .split(\"'\")[0]\r\n             .strip()</pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">timeout</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_31\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_31_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_31_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_31_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">31 : Job ID 3d803113c27646c2b9a803ec50d6092e</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_31_1\" data-parent=\"#job_list___sub_accordion_31\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_31_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\__init__.py&amp;line=234\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\__init__.py, start pos: (234, 38), end pos: (234, 39)</button></a></pre><pre>operator: core/NumberReplacer, occurrence: 2</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\__init__.py\r\n+++ bsrc\\pymeter\\api\\__init__.py\r\n@@ -231,7 +231,7 @@\r\n         return (\r\n             str(type(self.java_wrapped_element))\r\n             .split(\"class \")[1]\r\n-            .split(\"'jnius.reflect.\")[1]\r\n+            .split(\"'jnius.reflect.\")[ 2]\r\n             .split(\"'\")[0]\r\n             .strip()\r\n         )</pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">timeout</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_32\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_32_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_32_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_32_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">32 : Job ID 16a06c64dcd44f22ad72a897c368aaa8</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_32_1\" data-parent=\"#job_list___sub_accordion_32\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_32_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\__init__.py&amp;line=234\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\__init__.py, start pos: (234, 38), end pos: (234, 39)</button></a></pre><pre>operator: core/NumberReplacer, occurrence: 3</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\__init__.py\r\n+++ bsrc\\pymeter\\api\\__init__.py\r\n@@ -231,7 +231,7 @@\r\n         return (\r\n             str(type(self.java_wrapped_element))\r\n             .split(\"class \")[1]\r\n-            .split(\"'jnius.reflect.\")[1]\r\n+            .split(\"'jnius.reflect.\")[ 0]\r\n             .split(\"'\")[0]\r\n             .strip()\r\n         )</pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">timeout</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_33\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_33_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_33_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_33_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">33 : Job ID 01278eb51be8480b83e6def71269ccb6</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_33_1\" data-parent=\"#job_list___sub_accordion_33\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_33_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\__init__.py&amp;line=235\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\__init__.py, start pos: (235, 24), end pos: (235, 25)</button></a></pre><pre>operator: core/NumberReplacer, occurrence: 4</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\__init__.py\r\n+++ bsrc\\pymeter\\api\\__init__.py\r\n@@ -232,7 +232,7 @@\r\n             str(type(self.java_wrapped_element))\r\n             .split(\"class \")[1]\r\n             .split(\"'jnius.reflect.\")[1]\r\n-            .split(\"'\")[0]\r\n+            .split(\"'\")[ 1]\r\n             .strip()\r\n         )\r\n </pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">timeout</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_34\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_34_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_34_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_34_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">34 : Job ID b9b93ab32abb401f89c8d65c0e2f9040</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_34_1\" data-parent=\"#job_list___sub_accordion_34\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_34_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\__init__.py&amp;line=235\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\__init__.py, start pos: (235, 24), end pos: (235, 25)</button></a></pre><pre>operator: core/NumberReplacer, occurrence: 5</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\__init__.py\r\n+++ bsrc\\pymeter\\api\\__init__.py\r\n@@ -232,7 +232,7 @@\r\n             str(type(self.java_wrapped_element))\r\n             .split(\"class \")[1]\r\n             .split(\"'jnius.reflect.\")[1]\r\n-            .split(\"'\")[0]\r\n+            .split(\"'\")[ -1]\r\n             .strip()\r\n         )\r\n </pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">timeout</pre></div></div></div></div></div><div class=\"mb-1\" id=\"job_list___sub_accordion_35\"><div class=\"card\"><a data-toggle=\"collapse\" data-target=\"#job_list___sub_collapse_35_1\" aria-expanded=\"false\" aria-controls=\"job_list___sub_collapse_35_1\" href=\"#\" class=\"job_list___sub_multi_heading\"><div role=\"alert\" class=\"card-header alert-success\" id=\"job_list___sub_heading_35_1\"><button class=\"btn btn-outline-success\"><span class=\"job_id\">35 : Job ID ee7599b81e70465aac9b9e1f37052414</span></button></div></a><div aria-labelledby=\"job_list___sub_heading_35_1\" data-parent=\"#job_list___sub_accordion_35\" class=\"collapse job_list___sub_multi_collapse\" id=\"job_list___sub_collapse_35_1\"><div class=\"card-body\"><div class=\"work-item\"><div class=\"alert alert-success test-outcome\" role=\"alert\"><p>worker outcome: normal</p><p>test outcome: killed</p></div></div><pre class=\"location\"><a href=\"pycharm://open?file=src\\pymeter\\api\\__init__.py&amp;line=239\" class=\"text-secondary\"><button class=\"btn btn-outline-dark\">src\\pymeter\\api\\__init__.py, start pos: (239, 4), end pos: (240, 0)</button></a></pre><pre>operator: core/RemoveDecorator, occurrence: 0</pre><div class=\"alert alert-secondary\"><pre class=\"diff\">--- mutation diff ---\r\n--- asrc\\pymeter\\api\\__init__.py\r\n+++ bsrc\\pymeter\\api\\__init__.py\r\n@@ -235,8 +235,6 @@\r\n             .split(\"'\")[0]\r\n             .strip()\r\n         )\r\n-\r\n-    @property\r\n     def java_wrapped_element(self):\r\n         \"\"\"retrieves the java element wrapped in the python object by class name\"\"\"\r\n         if not self.__class__.wrapped_instance_name:</pre></div><div class=\"alert alert-secondary\"><pre class=\"diff\">EEEE..EEE.EEE.EEEEEEE.EE\r\r\n======================================================================\r\r\nERROR: test_http_sampler (utests.test_postprocessors.TestSampler)\r\r\nsend request to postman echo\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_postprocessors.py\", line 17, in test_http_sampler\r\r\n    http_sampler = HttpSampler(\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 35, in __init__\r\r\n    self._http_sampler_instance.children(\r\r\n  File \"jnius\\jnius_export_class.pxi\", line 879, in jnius.JavaMethod.__call__\r\r\n  File \"jnius\\jnius_conversion.pxi\", line 158, in jnius.populate_args\r\r\n  File \"jnius\\jnius_conversion.pxi\", line 815, in jnius.convert_pyarray_to_java\r\r\njnius.JavaException: Invalid variable (&lt;bound method BaseJMeterClass.java_wrapped_element of &lt;pymeter.api.postprocessors.JsonExtractor object at 0x0000022D0472CBE0&gt;&gt;,) used for L array 'Lus/abstracta/jmeter/javadsl/core/samplers/BaseSampler$SamplerChild;'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_sampler (utests.test_reporter.TestReporter)\r\r\ncreate an HTML report\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_reporter.py\", line 17, in test_http_sampler\r\r\n    tg = ThreadGroupWithRampUpAndHold(2, 1, 2, http_sampler, name=\"Some Name\")\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 170, in __init__\r\r\n    self._ramp_to_and_hold_instance.children(\r\r\n  File \"jnius\\jnius_export_class.pxi\", line 1177, in jnius.JavaMultipleMethod.__call__\r\r\n  File \"jnius\\jnius_export_class.pxi\", line 879, in jnius.JavaMethod.__call__\r\r\n  File \"jnius\\jnius_conversion.pxi\", line 158, in jnius.populate_args\r\r\n  File \"jnius\\jnius_conversion.pxi\", line 815, in jnius.convert_pyarray_to_java\r\r\njnius.JavaException: Invalid variable (&lt;bound method BaseJMeterClass.java_wrapped_element of &lt;pymeter.api.samplers.HttpSampler object at 0x0000022D01BD7D60&gt;&gt;,) used for L array 'Lus/abstracta/jmeter/javadsl/core/threadgroups/BaseThreadGroup$ThreadGroupChild;'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_2_headers (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 90, in test_http_2_headers\r\r\n    .header(\"key1\", \"val1\")\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 61, in header\r\r\n    self._http_sampler_instance = self.java_wrapped_element.header(key, value)\r\r\nAttributeError: 'function' object has no attribute 'header'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_duplicated_header (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 105, in test_http_duplicated_header\r\r\n    .header(\"key1\", \"val1\")\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 61, in header\r\r\n    self._http_sampler_instance = self.java_wrapped_element.header(key, value)\r\r\nAttributeError: 'function' object has no attribute 'header'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_sampler (utests.test_sampler.TestSampler)\r\r\nsend request to postman echo\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 15, in test_http_sampler\r\r\n    tg1 = ThreadGroupSimple(1, 1, http_sampler)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 142, in __init__\r\r\n    self._thread_group_simple_instance.children(\r\r\n  File \"jnius\\jnius_export_class.pxi\", line 1177, in jnius.JavaMultipleMethod.__call__\r\r\n  File \"jnius\\jnius_export_class.pxi\", line 879, in jnius.JavaMethod.__call__\r\r\n  File \"jnius\\jnius_conversion.pxi\", line 158, in jnius.populate_args\r\r\n  File \"jnius\\jnius_conversion.pxi\", line 815, in jnius.convert_pyarray_to_java\r\r\njnius.JavaException: Invalid variable (&lt;bound method BaseJMeterClass.java_wrapped_element of &lt;pymeter.api.samplers.HttpSampler object at 0x0000022D04721630&gt;&gt;,) used for L array 'Lus/abstracta/jmeter/javadsl/core/threadgroups/BaseThreadGroup$ThreadGroupChild;'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_http_valid_header (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 77, in test_http_valid_header\r\r\n    ).header(\"key1\", \"val1\")\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 61, in header\r\r\n    self._http_sampler_instance = self.java_wrapped_element.header(key, value)\r\r\nAttributeError: 'function' object has no attribute 'header'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_post_http_sampler_dict_input (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 28, in test_post_http_sampler_dict_input\r\r\n    ).post({\"var1\": 1}, ContentType.APPLICATION_JSON)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 50, in post\r\r\n    self._http_sampler_instance = self.java_wrapped_element.post(\r\r\nAttributeError: 'function' object has no attribute 'post'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_post_http_sampler_list_input (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 39, in test_post_http_sampler_list_input\r\r\n    ).post([1, 2, 3, 4], ContentType.APPLICATION_JSON)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 50, in post\r\r\n    self._http_sampler_instance = self.java_wrapped_element.post(\r\r\nAttributeError: 'function' object has no attribute 'post'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_post_http_sampler_str_input (utests.test_sampler.TestSampler)\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_sampler.py\", line 50, in test_post_http_sampler_str_input\r\r\n    ).post('{\"name\": \"John Doe\"}', ContentType.APPLICATION_JSON)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 50, in post\r\r\n    self._http_sampler_instance = self.java_wrapped_element.post(\r\r\nAttributeError: 'function' object has no attribute 'post'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_empty_test_plan (utests.test_test_plan.TestTestPlanClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 24, in test_creation_of_empty_test_plan\r\r\n    python_test_plan_object.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\nIndexError: list index out of range\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_test_plan_with_valid_children (utests.test_test_plan.TestTestPlanClass)\r\r\nWhen children are passed through,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 33, in test_creation_of_test_plan_with_valid_children\r\r\n    test_plan = TestPlan(tg1, tg2)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 74, in __init__\r\r\n    self._test_plan_instance.children(\r\r\n  File \"jnius\\jnius_export_class.pxi\", line 879, in jnius.JavaMethod.__call__\r\r\n  File \"jnius\\jnius_conversion.pxi\", line 158, in jnius.populate_args\r\r\n  File \"jnius\\jnius_conversion.pxi\", line 815, in jnius.convert_pyarray_to_java\r\r\njnius.JavaException: Invalid variable (&lt;bound method BaseJMeterClass.java_wrapped_element of &lt;pymeter.api.config.ThreadGroupWithRampUpAndHold object at 0x0000022D04721630&gt;&gt;, &lt;bound method BaseJMeterClass.java_wrapped_element of &lt;pymeter.api.config.ThreadGroupWithRampUpAndHold object at 0x0000022D04745810&gt;&gt;) used for L array 'Lus/abstracta/jmeter/javadsl/core/DslTestPlan$TestPlanChild;'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_run_empty_flow (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 90, in test_run_empty_flow\r\r\n    test_plan = TestPlan(tg1)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 74, in __init__\r\r\n    self._test_plan_instance.children(\r\r\n  File \"jnius\\jnius_export_class.pxi\", line 879, in jnius.JavaMethod.__call__\r\r\n  File \"jnius\\jnius_conversion.pxi\", line 158, in jnius.populate_args\r\r\n  File \"jnius\\jnius_conversion.pxi\", line 815, in jnius.convert_pyarray_to_java\r\r\njnius.JavaException: Invalid variable (&lt;bound method BaseJMeterClass.java_wrapped_element of &lt;pymeter.api.config.ThreadGroupWithRampUpAndHold object at 0x0000022D0471A470&gt;&gt;,) used for L array 'Lus/abstracta/jmeter/javadsl/core/DslTestPlan$TestPlanChild;'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_run_positive_flow (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 56, in test_run_positive_flow\r\r\n    tg1 = ThreadGroupWithRampUpAndHold(20, 1, 3, http_sampler)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 170, in __init__\r\r\n    self._ramp_to_and_hold_instance.children(\r\r\n  File \"jnius\\jnius_export_class.pxi\", line 1177, in jnius.JavaMultipleMethod.__call__\r\r\n  File \"jnius\\jnius_export_class.pxi\", line 879, in jnius.JavaMethod.__call__\r\r\n  File \"jnius\\jnius_conversion.pxi\", line 158, in jnius.populate_args\r\r\n  File \"jnius\\jnius_conversion.pxi\", line 815, in jnius.convert_pyarray_to_java\r\r\njnius.JavaException: Invalid variable (&lt;bound method BaseJMeterClass.java_wrapped_element of &lt;pymeter.api.samplers.HttpSampler object at 0x0000022D0471A470&gt;&gt;,) used for L array 'Lus/abstracta/jmeter/javadsl/core/threadgroups/BaseThreadGroup$ThreadGroupChild;'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_run_validate_order (utests.test_test_plan.TestTestPlanClass)\r\r\nshould run test flow with no exceptions\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_test_plan.py\", line 99, in test_run_validate_order\r\r\n    tg_setup = SetupThreadGroup(dummy_sampler_for_setup)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 107, in __init__\r\r\n    self._setup_thread_group_instance.children(\r\r\n  File \"jnius\\jnius_export_class.pxi\", line 1177, in jnius.JavaMultipleMethod.__call__\r\r\n  File \"jnius\\jnius_export_class.pxi\", line 879, in jnius.JavaMethod.__call__\r\r\n  File \"jnius\\jnius_conversion.pxi\", line 158, in jnius.populate_args\r\r\n  File \"jnius\\jnius_conversion.pxi\", line 815, in jnius.convert_pyarray_to_java\r\r\njnius.JavaException: Invalid variable (&lt;bound method BaseJMeterClass.java_wrapped_element of &lt;pymeter.api.samplers.DummySampler object at 0x0000022D0471A470&gt;&gt;,) used for L array 'Lus/abstracta/jmeter/javadsl/core/threadgroups/BaseThreadGroup$ThreadGroupChild;'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_empty_setup_thread_group (utests.test_thread_group.TestThreadGroupClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 24, in test_creation_of_empty_setup_thread_group\r\r\n    python_thread_group_object.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\nIndexError: list index out of range\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_empty_teardown_thread_group (utests.test_thread_group.TestThreadGroupClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 32, in test_creation_of_empty_teardown_thread_group\r\r\n    python_thread_group_object.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\nIndexError: list index out of range\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_empty_thread_group (utests.test_thread_group.TestThreadGroupClass)\r\r\nwhen creating the python class, it should wrap around the correct java class\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 16, in test_creation_of_empty_thread_group\r\r\n    python_thread_group_object.get_java_class_name(),\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\__init__.py\", line 232, in get_java_class_name\r\r\n    str(type(self.java_wrapped_element))\r\r\nIndexError: list index out of range\r\r\n\r\r\n======================================================================\r\r\nERROR: test_creation_of_thread_group_with_valid_children (utests.test_thread_group.TestThreadGroupClass)\r\r\nWhen children are passed through,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_thread_group.py\", line 40, in test_creation_of_thread_group_with_valid_children\r\r\n    python_thread_group_object = ThreadGroupWithRampUpAndHold(1, 1, 1, http_sampler)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\config.py\", line 170, in __init__\r\r\n    self._ramp_to_and_hold_instance.children(\r\r\n  File \"jnius\\jnius_export_class.pxi\", line 1177, in jnius.JavaMultipleMethod.__call__\r\r\n  File \"jnius\\jnius_export_class.pxi\", line 879, in jnius.JavaMethod.__call__\r\r\n  File \"jnius\\jnius_conversion.pxi\", line 158, in jnius.populate_args\r\r\n  File \"jnius\\jnius_conversion.pxi\", line 815, in jnius.convert_pyarray_to_java\r\r\njnius.JavaException: Invalid variable (&lt;bound method BaseJMeterClass.java_wrapped_element of &lt;pymeter.api.samplers.HttpSampler object at 0x0000022D025268F0&gt;&gt;,) used for L array 'Lus/abstracta/jmeter/javadsl/core/threadgroups/BaseThreadGroup$ThreadGroupChild;'\r\r\n\r\r\n======================================================================\r\r\nERROR: test_uniform_random_timer (utests.test_timers.TestTimer)\r\r\nWhen the minimal time is 5000 milliseconds,\r\r\n----------------------------------------------------------------------\r\r\nTraceback (most recent call last):\r\r\n  File \"C:\\workspace-vscode\\pymeter\\utests\\test_timers.py\", line 15, in test_uniform_random_timer\r\r\n    http_sampler = HttpSampler(\"Echo\", \"https://postman-echo.com/get?var=1\", timer)\r\r\n  File \"C:\\workspace-vscode\\pymeter\\src\\pymeter\\api\\samplers.py\", line 35, in __init__\r\r\n    self._http_sampler_instance.children(\r\r\n  File \"jnius\\jnius_export_class.pxi\", line 879, in jnius.JavaMethod.__call__\r\r\n  File \"jnius\\jnius_conversion.pxi\", line 158, in jnius.populate_args\r\r\n  File \"jnius\\jnius_conversion.pxi\", line 815, in jnius.convert_pyarray_to_java\r\r\njnius.JavaException: Invalid variable (&lt;bound method BaseJMeterClass.java_wrapped_element of &lt;pymeter.api.timers.UniformRandomTimer object at 0x0000022D0472FC40&gt;&gt;,) used for L array 'Lus/abstracta/jmeter/javadsl/core/samplers/BaseSampler$SamplerChild;'\r\r\n\r\r\n----------------------------------------------------------------------\r\r\nRan 24 tests in 1.071s\r\r\n\r\r\nFAILED (errors=19)\r\r\n</pre></div></div></div></div></div></div></div></div></div></div><script src=\"https://code.jquery.com/jquery-3.3.1.slim.min.js\" integrity=\"sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo\" crossorigin=\"anonymous\"></script><script src=\"https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js\" integrity=\"sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1\" crossorigin=\"anonymous\"></script><script src=\"https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js\" integrity=\"sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM\" crossorigin=\"anonymous\"></script><script type=\"text/javascript\">$('div.job_list___sub_multi_collapse').on('shown.bs.collapse',  function () {    correct_behavior_functional_buttons();  });$('div.job_list___sub_multi_collapse').on('hidden.bs.collapse',  function () {    correct_behavior_functional_buttons();  });function correct_behavior_functional_buttons() {    var expand = false;    var collapse = false;    $('a.job_list___sub_multi_heading').each(function(index) {      if ($(this).attr('aria-expanded') == 'false') {        expand = true;        return false;      };    });    $('a.job_list___sub_multi_heading').each(function(index) {      if ($(this).attr('aria-expanded') == 'true') {        collapse = true;        return false;      };    });    if (expand) {      $('div#job_item_expand_all').css('display', 'inline-block');    } else {      $('div#job_item_expand_all').css('display', 'none');    };    if (collapse) {      $('div#job_item_collapse_all').css('display', 'inline-block');    } else {      $('div#job_item_collapse_all').css('display', 'none');    };  };correct_behavior_functional_buttons();</script></body></html>\r\n"
  },
  {
    "path": "docs/requirements.txt",
    "content": "Sphinx == 5.2.2\nsphinxcontrib-log-cabinet == 1.0.1\nPallets-Sphinx-Themes == 2.0.2\nsphinx-issues == 3.0.1\nsphinx-tabs == 3.4.1\ntyping_extensions==4.3.0"
  },
  {
    "path": "docs/user-guide/Makefile",
    "content": "# Minimal makefile for Sphinx documentation\n#\n\n# You can set these variables from the command line, and also\n# from the environment for the first two.\nSPHINXOPTS    ?=\nSPHINXBUILD   ?= sphinx-build\nSOURCEDIR     = source\nBUILDDIR      = build\n\n# Put it first so that \"make\" without argument is like \"make help\".\nhelp:\n\t@$(SPHINXBUILD) -M help \"$(SOURCEDIR)\" \"$(BUILDDIR)\" $(SPHINXOPTS) $(O)\n\n.PHONY: help Makefile\n\n# Catch-all target: route all unknown targets to Sphinx using the new\n# \"make mode\" option.  $(O) is meant as a shortcut for $(SPHINXOPTS).\n%: Makefile\n\t@$(SPHINXBUILD) -M $@ \"$(SOURCEDIR)\" \"$(BUILDDIR)\" $(SPHINXOPTS) $(O)\n"
  },
  {
    "path": "docs/user-guide/make.bat",
    "content": "@ECHO OFF\n\npushd %~dp0\n\nREM Command file for Sphinx documentation\n\nif \"%SPHINXBUILD%\" == \"\" (\n\tset SPHINXBUILD=sphinx-build\n)\nset SOURCEDIR=source\nset BUILDDIR=build\n\n%SPHINXBUILD% >NUL 2>NUL\nif errorlevel 9009 (\n\techo.\n\techo.The 'sphinx-build' command was not found. Make sure you have Sphinx\n\techo.installed, then set the SPHINXBUILD environment variable to point\n\techo.to the full path of the 'sphinx-build' executable. Alternatively you\n\techo.may add the Sphinx directory to PATH.\n\techo.\n\techo.If you don't have Sphinx installed, grab it from\n\techo.https://www.sphinx-doc.org/\n\texit /b 1\n)\n\nif \"%1\" == \"\" goto help\n\n%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%\ngoto end\n\n:help\n%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%\n\n:end\npopd\n"
  },
  {
    "path": "docs/user-guide/source/api.rst",
    "content": "Api Documentation\n=================\n\nIn this section we will get into the details of the each of the features included in pymeter.\nThe api allows you more controll over the different aspects of the load testing script.\n\n.. toctree::\n   :maxdepth: 1\n\n   config\n   samplers\n   timers\n   reporters\n   postprocessors\n   assertions\n"
  },
  {
    "path": "docs/user-guide/source/assertions.rst",
    "content": "assertions\n---------------\n\n.. automodule:: pymeter.api.assertions\n    :members:\n    :undoc-members:\n    :show-inheritance:\n    :exclude-members: BaseAssertions"
  },
  {
    "path": "docs/user-guide/source/conf.py",
    "content": "import packaging.version\nfrom pallets_sphinx_themes import get_version\nfrom pallets_sphinx_themes import ProjectLink\n\n# Project --------------------------------------------------------------\n\nproject = \"pymeter\"\ncopyright = \"2010 Eldad Uzman\"\nauthor = \"Eldad Uzman\"\nrelease, version = get_version(\"pymeter\")\n\n# General --------------------------------------------------------------\n\nmaster_doc = \"index\"\nextensions = [\n    \"sphinx.ext.autodoc\",\n    \"sphinx.ext.intersphinx\",\n    \"sphinxcontrib.log_cabinet\",\n    \"pallets_sphinx_themes\",\n    \"sphinx_issues\",\n    \"sphinx_tabs.tabs\",\n]\nautodoc_typehints = \"description\"\nintersphinx_mapping = {\n    \"python\": (\"https://docs.python.org/3/\", None),\n\n}\nissues_github_path = \"eldaduzman/pymeter\"\n\n# HTML -----------------------------------------------------------------\n\nhtml_theme = \"flask\"\nhtml_theme_options = {\"index_sidebar_logo\": False}\nhtml_context = {\n    \"project_links\": [\n        ProjectLink(\"PyPI Releases\", \"https://pypi.org/project/pymeter/\"),\n        ProjectLink(\"Source Code\", \"https://github.com/eldaduzman/pymeter\"),\n        ProjectLink(\"Issue Tracker\", \"https://github.com/eldaduzman/pymeter/issues/\"),\n\n        # : (\"https://abstracta.github.io/jmeter-java-dsl/\", None),\n        # pyjnius: (\"https://github.com/kivy/pyjnius\", None),\n    ]\n}\nhtml_sidebars = {\n    \"index\": [\"project.html\", \"localtoc.html\", \"searchbox.html\", \"ethicalads.html\"],\n    \"**\": [\"localtoc.html\", \"relations.html\", \"searchbox.html\", \"ethicalads.html\"],\n}\nsinglehtml_sidebars = {\"index\": [\"project.html\", \"localtoc.html\", \"ethicalads.html\"]}\nhtml_static_path = [\"_static\"]\n\nhtml_favicon = \"https://raw.githubusercontent.com/eldaduzman/pymeter/main/docs/user-guide/source/_static/pymeter-logo.png\"\nhtml_logo = \"https://raw.githubusercontent.com/eldaduzman/pymeter/main/docs/user-guide/source/_static/pymeter-logo.png\"\nhtml_title = f\"pymeter Documentation ({version})\"\n\nhtml_show_sourcelink = False\n\n# LaTeX ----------------------------------------------------------------\n\nlatex_documents = [(master_doc, f\"pymeter-{version}.tex\", html_title, author, \"manual\")]\n\n# Local Extensions -----------------------------------------------------\n\n\ndef github_link(name, rawtext, text, lineno, inliner, options=None, content=None):\n    app = inliner.document.settings.env.app\n    release = app.config.release\n    base_url = \"https://github.com/eldaduzman/pymeter/tree/\"\n\n    if text.endswith(\">\"):\n        words, text = text[:-1].rsplit(\"<\", 1)\n        words = words.strip()\n    else:\n        words = None\n\n    if packaging.version.parse(release).is_devrelease:\n        url = f\"{base_url}main/{text}\"\n    else:\n        url = f\"{base_url}{release}/{text}\"\n\n    if words is None:\n        words = url\n\n    from docutils.nodes import reference\n    from docutils.parsers.rst.roles import set_classes\n\n    options = options or {}\n    set_classes(options)\n    node = reference(rawtext, words, refuri=url, **options)\n    return [node], []\n\n\ndef setup(app):\n    app.add_role(\"gh\", github_link)\n"
  },
  {
    "path": "docs/user-guide/source/config.rst",
    "content": "config\n============\n\n\n.. automodule:: pymeter.api.config\n    :members:\n    :undoc-members:\n    :show-inheritance:\n    :exclude-members: BaseThreadGroup, BaseConfigElement, TestPlanStats"
  },
  {
    "path": "docs/user-guide/source/index.rst",
    "content": ".. pymeter documentation master file, created by\n   sphinx-quickstart on Wed Sep 28 11:52:18 2022.\n   You can adapt this file completely to your liking, but it should at least\n   contain the root `toctree` directive.\n\nWelcome to pymeter's documentation!\n===================================\n\n.. image:: _static/pymeter-logo.png\n    :align: center\n\nIn this document, you can get all the information you need to get started.\nPymeter delivers the ability to script and execute JMeter load test using python based on the java package `JMeter Dsl <https://abstracta.github.io/jmeter-java-dsl/>`_\n\n\n.. toctree::\n   :maxdepth: 1\n\n   installation\n   quickstart\n   api\n\nIndex\n=====\n\n* :ref:`genindex`\n* :ref:`modindex`\n* :ref:`search`\n\n"
  },
  {
    "path": "docs/user-guide/source/installation.rst",
    "content": "Installation\n============\n\n\nPrerequisites\n--------------\n\n.. list-table:: \n   :widths: 2 10 40 50\n   :header-rows: 1\n\n   * - #\n     - Item\n     - Distribution\n     - Link\n   * - *\n     - Python\n     - CPython version 3.9 or higher\n     - https://www.python.org/\n   * - *\n     - Java\n     - OpenJdk temurin versions 8 and 11\n     - https://adoptium.net/temurin/releases\n   * - *\n     - OS\n     - Windows, Linux, MACOS\n     -\n\n\nJAVA_HOME environment variable\n-------------------------------\nMake sure that the `JAVA_HOME` environment variable is set correctly `read <https://confluence.atlassian.com/doc/setting-the-java_home-variable-in-windows-8895.html>`_\n\n\n\n.. tabs::\n\n   .. group-tab:: macOS/Linux\n\n      .. code-block:: text\n\n         $ echo $JAVA_HOME\n\n\n   .. group-tab:: Windows\n\n      .. code-block:: text\n\n         > echo %JAVA_HOME%\n\n\n.. _install-activate-env:\n\nInstall from pip\n-------------------------------\n\n      .. code-block:: text\n\n         > pip install pymeter\n\nNow you can open a python shell\n\n      .. code-block:: text\n\n         > python\n         >>> import pymeter\n\nYou are good to go! 👍"
  },
  {
    "path": "docs/user-guide/source/postprocessors.rst",
    "content": "postprocessors\n---------------\n\n.. automodule:: pymeter.api.postprocessors\n    :members:\n    :undoc-members:\n    :show-inheritance:\n    :exclude-members: BasePostProcessors"
  },
  {
    "path": "docs/user-guide/source/quickstart.rst",
    "content": "Quickstart\n============\n\nsimple example\n--------------\n      .. code-block:: python\n\n            from pymeter.api.config import TestPlan, ThreadGroupSimple\n            from pymeter.api.samplers import HttpSampler\n\n\n            # create HTTP sampler, sends a get request to the given url\n            http_sampler = HttpSampler(\"echo_get_request\", \"https://postman-echo.com/get?var=1\")\n\n            # create a thread group with 10 threads that runs for 1 iterations, give it the http sampler as a child input\n            thread_group = ThreadGroupSimple(10, 1, http_sampler)\n\n            # create a test plan with the required thread group\n            test_plan = TestPlan(thread_group)\n\n            # run the test plan and take the results\n            stats = test_plan.run()\n\n\n            # Assert that the 99th percentile of response time is less than 2000 milliseconds.\n            assert (\n                stats.sample_time_99_percentile_milliseconds <= 2000\n            ), f\"99th precentile should be less than 2000 milliseconds, got {stats.sample_time_99_percentile_milliseconds}\"\n\nFor more options, please read the  `api documentation <api.html>`_."
  },
  {
    "path": "docs/user-guide/source/reporters.rst",
    "content": "reporters\n---------------\n\n.. automodule:: pymeter.api.reporters\n    :members:\n    :undoc-members:\n    :show-inheritance:\n    :exclude-members: BaseReporter"
  },
  {
    "path": "docs/user-guide/source/samplers.rst",
    "content": "samplers\n---------------\n\n.. automodule:: pymeter.api.samplers\n    :members:\n    :undoc-members:\n    :show-inheritance:\n    :exclude-members: BaseSampler"
  },
  {
    "path": "docs/user-guide/source/timers.rst",
    "content": "timers\n---------------\n\n.. automodule:: pymeter.api.timers\n    :members:\n    :undoc-members:\n    :show-inheritance:\n    :exclude-members: BaseTimer"
  },
  {
    "path": "java-dependencies/pom.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd\">\n  <modelVersion>4.0.0</modelVersion>\n\n  <groupId>us.abstracta.jmeter</groupId>\n  <artifactId>java-dependecies</artifactId>\n  <version>1.0-SNAPSHOT</version>\n\n  <name>java-dependecies</name>\n  <!-- FIXME change it to the project's website -->\n  <url>http://www.example.com</url>\n\n  <properties>\n    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>\n    <maven.compiler.source>1.7</maven.compiler.source>\n    <maven.compiler.target>1.7</maven.compiler.target>\n  </properties>\n\n  <dependencies>\n    <dependency>\n      <groupId>junit</groupId>\n      <artifactId>junit</artifactId>\n      <version>4.13.1</version>\n      <scope>test</scope>\n    </dependency>\n    <dependency>\n      <groupId>us.abstracta.jmeter</groupId>\n      <artifactId>jmeter-java-dsl</artifactId>\n      <version>1.23.3</version>\n      <scope>test</scope>\n    </dependency>\n  </dependencies>\n\n  <build>\n    <pluginManagement>\n      <!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->\n      <plugins>\n        <!-- clean lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle -->\n        <plugin>\n          <artifactId>maven-clean-plugin</artifactId>\n          <version>3.1.0</version>\n        </plugin>\n        <!-- default lifecycle, jar packaging: see https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging -->\n        <plugin>\n          <artifactId>maven-resources-plugin</artifactId>\n          <version>3.0.2</version>\n        </plugin>\n        <plugin>\n          <artifactId>maven-compiler-plugin</artifactId>\n          <version>3.8.0</version>\n        </plugin>\n        <plugin>\n          <artifactId>maven-surefire-plugin</artifactId>\n          <version>2.22.1</version>\n        </plugin>\n        <plugin>\n          <artifactId>maven-jar-plugin</artifactId>\n          <version>3.0.2</version>\n        </plugin>\n        <plugin>\n          <artifactId>maven-install-plugin</artifactId>\n          <version>2.5.2</version>\n        </plugin>\n        <plugin>\n          <artifactId>maven-deploy-plugin</artifactId>\n          <version>2.8.2</version>\n        </plugin>\n        <!-- site lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#site_Lifecycle -->\n        <plugin>\n          <artifactId>maven-site-plugin</artifactId>\n          <version>3.7.1</version>\n        </plugin>\n        <plugin>\n          <artifactId>maven-project-info-reports-plugin</artifactId>\n          <version>3.0.0</version>\n        </plugin>\n      </plugins>\n    </pluginManagement>\n  </build>\n</project>\n"
  },
  {
    "path": "java-dependencies/src/main/java/us/abstracta/jmeter/App.java",
    "content": "package us.abstracta.jmeter;\n\n/**\n * Hello world!\n *\n */\npublic class App \n{\n    public static void main( String[] args )\n    {\n        System.out.println( \"Hello World!\" );\n    }\n}\n"
  },
  {
    "path": "java-dependencies/src/test/java/us/abstracta/jmeter/AppTest.java",
    "content": "package us.abstracta.jmeter;\n\nimport static org.junit.Assert.assertTrue;\n\nimport org.junit.Test;\n\n/**\n * Unit test for simple App.\n */\npublic class AppTest \n{\n    /**\n     * Rigorous Test :-)\n     */\n    @Test\n    public void shouldAnswerWithTrue()\n    {\n        assertTrue( true );\n    }\n}\n"
  },
  {
    "path": "pyproject.toml",
    "content": "[tool.poetry]\nname = \"pymeter\"\nversion = \"1.3.0\"\ndescription = \"Simple JMeter performance tests API for python\"\nauthors = [\"Eldad Uzman <eldadu1985@gmail.com>\"]\nlicense = \"Apache License 2.0\"\nreadme = \"README.md\"\npackages = [\n    { include = \"pymeter\", from = \"src\" }\n]\ninclude = [\n    { path = \"src/pymeter/resources/jars/*.jar\" }\n]\nrepository = \"https://github.com/eldaduzman/pymeter\"\nkeywords = [\"loadtesting\", \"qa\", \"JMeter\", \"automation\", \"performance\", \"performanetesting\"]\n\n\n[tool.poetry.dependencies]\npython = \"^3.8\"\npyjnius = \"1.6.1\"\ntyping-extensions = \"^4.3.0\"\n\n\n[tool.poetry.group.dev.dependencies]\npylint = \"^2.15.3\"\nmypy = \"^0.971\"\nblack = \"^22.8.0\"\nperflint = \"^0.7.3\"\ncoverage = \"^6.4.4\"\ncosmic-ray = \"^8.3.5\"\ntox = \"^3.26.0\"\nSphinx = \"^5.2.2\"\nsphinxcontrib-log-cabinet = \"^1.0.1\"\nPallets-Sphinx-Themes = \"^2.0.2\"\nsphinx-issues = \"^3.0.1\"\nsphinx-tabs = \"^3.4.1\"\nparameterized = \"^0.8.1\"\n\n[build-system]\nrequires = [\"poetry-core\"]\nbuild-backend = \"poetry.core.masonry.api\"\n\n"
  },
  {
    "path": "src/pymeter/__init__.py",
    "content": "\"\"\"\nWelcome to pymeter's documentation.\n\n\n\"\"\"\nimport os\nimport pathlib\n\nimport jnius_config\n\njars = os.path.join(pathlib.Path(__file__).parent.resolve(), \"resources\", \"jars\", \"*\")\n\njnius_config.set_classpath(\".\", jars)\n"
  },
  {
    "path": "src/pymeter/api/__init__.py",
    "content": "\"\"\"\n                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n\n\n\"\"\"\nimport re\nfrom enum import Enum\n\nfrom jnius import autoclass\n\ncontent_type_java_enum = autoclass(\"org.apache.http.entity.ContentType\")\n\n\nclass ContentType(Enum):\n    \"\"\"http content types\"\"\"\n\n    APPLICATION_JSON = content_type_java_enum.APPLICATION_JSON\n    APPLICATION_ATOM_XML = content_type_java_enum.APPLICATION_ATOM_XML\n    APPLICATION_FORM_URLENCODED = content_type_java_enum.APPLICATION_FORM_URLENCODED\n    APPLICATION_OCTET_STREAM = content_type_java_enum.APPLICATION_OCTET_STREAM\n    APPLICATION_SVG_XML = content_type_java_enum.APPLICATION_SVG_XML\n    APPLICATION_XHTML_XML = content_type_java_enum.APPLICATION_XHTML_XML\n    APPLICATION_XML = content_type_java_enum.APPLICATION_XML\n    MULTIPART_FORM_DATA = content_type_java_enum.MULTIPART_FORM_DATA\n    TEXT_HTML = content_type_java_enum.TEXT_HTML\n    TEXT_PLAIN = content_type_java_enum.TEXT_PLAIN\n    TEXT_XML = content_type_java_enum.TEXT_XML\n    WILDCARD = content_type_java_enum.WILDCARD\n\n    def get_mime_type(self) -> str:\n        \"\"\"this method is for unittests only\"\"\"\n        if self.name == \"APPLICATION_FORM_URLENCODED\":\n            return 'application/x-www-form-urlencoded'\n        if self.name == \"WILDCARD\":\n            return \"*/*\"\n        arr = self.name.lower().split(\"_\")\n        if 'xml' in arr:\n            return f\"{arr[0]}/{'+'.join(arr[1:])}\"\n        return f\"{arr[0]}/{'-'.join(arr[1:])}\"\n\nclass BaseJMeterClass:\n    \"\"\"base class for all JMeter elements\"\"\"\n\n    pattern = re.compile(r\"(?<!^)(?=[A-Z])\")\n    java_duration = autoclass(\"java.time.Duration\")\n    jmeter_class = autoclass(\"us.abstracta.jmeter.javadsl.JmeterDsl\")\n\n    wrapped_instance_name = None\n\n    def get_java_class_name(self):\n        \"\"\"returns the name of the java class\"\"\"\n\n        return (\n            str(type(self.java_wrapped_element))\n            .split(\"class \")[1]\n            .split(\"'jnius.reflect.\")[1]\n            .split(\"'\")[0]\n            .strip()\n        )\n\n    @property\n    def java_wrapped_element(self):\n        \"\"\"retrieves the java element wrapped in the python object by class name\"\"\"\n        if not self.__class__.wrapped_instance_name:\n            self.__class__.wrapped_instance_name = BaseJMeterClass.pattern.sub(\n                \"_\", self.__class__.__name__\n            ).lower()\n\n        return object.__getattribute__(\n            self, f\"_{self.__class__.wrapped_instance_name}_instance\"\n        )\n\n    def children(self, *children):\n        \"\"\"\n          adds children to element\n          Example 1:\n\n        .. code-block:: python\n\n              from pymeter.api.config import TestPlan, ThreadGroupWithRampUpAndHold, SetupThreadGroup, TeardownThreadGroup\n              from pymeter.api.samplers import HttpSampler\n\n              http_sampler1 = HttpSampler(\"echo_get_request\", \"https://postman-echo.com/get?var=1\")\n              http_sampler2 = HttpSampler(\"echo_get_request\", \"https://postman-echo.com/get?var=2\")\n\n              thread_group_setup = SetupThreadGroup()\n              thread_group_setup.children(http_sampler1, http_sampler2)\n\n          Example 2:\n\n        .. code-block:: python\n\n              from pymeter.api.config import TestPlan, ThreadGroupWithRampUpAndHold, SetupThreadGroup, TeardownThreadGroup\n              from pymeter.api.samplers import HttpSampler\n\n              http_sampler1 = HttpSampler(\"echo_get_request\", \"https://postman-echo.com/get?var=1\")\n              http_sampler2 = HttpSampler(\"echo_get_request\", \"https://postman-echo.com/get?var=2\")\n\n              thread_group_setup = SetupThreadGroup()\n              thread_group_setup.children(http_sampler1)\n              thread_group_setup.children(http_sampler2)\n        \"\"\"\n        if children:\n            self.java_wrapped_element.children(\n                *[c.java_wrapped_element for c in children]\n            )\n\n\nclass TestPlanChildElement(BaseJMeterClass):\n    \"\"\"class to be included in test plan objects\"\"\"\n\n\nclass ThreadGroupChildElement(BaseJMeterClass):\n    \"\"\"class to be included in thread group objects\"\"\"\n\n\nclass ChildrenAreNotAllowed(Exception):\n    \"\"\"exception for not allowed children method\"\"\"\n"
  },
  {
    "path": "src/pymeter/api/assertions.py",
    "content": "\"\"\"\nBy default, JMeter marks any HTTP request with a fail response code (4xx or 5xx) as failed,\nwhich allows you to easily identify when some request unexpectedly fails.\n\nBut in many cases, this is not enough or desirable,\nand you need to check for the response body (or some other field) to contain (or not) a certain string.\n\nThis is usually accomplished in JMeter with the usage of Response Assertions,\nwhich provides an easy and fast way to verify that you get the proper response for each step of the test plan,\nmarking the request as a failure when the specified condition is not met.\n\nexample - 1:\n--------------\nIn this example we assert that the response contains the text \"var\"\n\n\n      .. code-block:: python\n\n            from pymeter.api.config import TestPlan, ThreadGroupSimple\n            from pymeter.api.samplers import HttpSampler\n            from pymeter.api.timers import ConstantTimer\n            from pymeter.api.assertions import ResponseAssertion\n\n            timer = ConstantTimer(2000)\n            ra = ResponseAssertion().contains_substrings(\"var\")\n            http_sampler = HttpSampler(\"Echo\", \"https://postman-echo.com/get?var=1\", timer, ra)\n            thread_group = ThreadGroupSimple(1, 1)\n            thread_group.children(http_sampler)\n            test_plan = TestPlan(thread_group)\n            stats = test_plan.run()\n\n\"\"\"\n\n\nfrom pymeter.api import ChildrenAreNotAllowed, ThreadGroupChildElement\n\n\nclass BaseAssertion(ThreadGroupChildElement):\n    \"\"\"base class for all assertions\"\"\"\n\n    def children(self, *children):\n        raise ChildrenAreNotAllowed(\"Cant append children to assertion\")\n\n\nclass ResponseAssertion(BaseAssertion):\n    \"\"\"Assertion of the response element\"\"\"\n    def __init__(self) -> None:\n        self._response_assertion_instance = (\n            ResponseAssertion.jmeter_class.responseAssertion()\n        )\n\n        super().__init__()\n\n    def contains_substrings(self, *strings_to_look):\n        \"\"\"assert that the response contains string the given strings\"\"\"\n        self._response_assertion_instance = (\n            self._response_assertion_instance.containsSubstrings(*strings_to_look)\n        )\n        return self\n"
  },
  {
    "path": "src/pymeter/api/config.py",
    "content": "\"\"\"\nThe config module contain classes that define the overall structure of the test script.\nHere we will define the overall plan, the setup and teardown processes and the load shapes that the test script generate.\n\nexample - 1:\n--------------\nIn this example we use the standard python unittest module with setup and teardown,\nThe test case it self will rump up 10 threads in 1 second and hold the load for additional 10 seconds.\nNote that the setup and teardown code is executed outside of JMeter's context in this example.\n\n      .. code-block:: python\n\n            from unittest import TestCase, main\n            from pymeter.api.config import TestPlan, ThreadGroupWithRampUpAndHold\n            from pymeter.api.samplers import HttpSampler\n\n\n            class TestTestPlanClass(TestCase):\n                @classmethod\n                def setUpClass(cls):\n                    print(\"setUpClass\")\n\n                def test_case_1(self):\n                    # create HTTP sampler, sends a get request to the given url\n                    http_sampler = HttpSampler(\"echo_get_request\", \"https://postman-echo.com/get?var=1\")\n\n                    # create a thread group that will rump up 10 threads in 1 second and\n                    # hold the load for additional 10 seconds, give it the http sampler as a child input\n                    thread_group_main = ThreadGroupWithRampUpAndHold(10, 1, 10, http_sampler)\n\n                    # create a test plan with the required thread group\n                    test_plan = TestPlan(thread_group_main)\n\n                    # run the test plan and take the results\n                    stats = test_plan.run()\n                    self.assertLess(stats.sample_time_99_percentile_milliseconds, 2000)\n\n                @classmethod\n                def tearDownClass(cls):\n                    print(\"tearDownClass\")\n\nexample - 2:\n--------------\nIf for some reason it is needed for you to run the setup and teardown code from with in the JMeter context, here's how you can do it:\n      .. code-block:: python\n\n            from pymeter.api.config import TestPlan, ThreadGroupWithRampUpAndHold, SetupThreadGroup, TeardownThreadGroup\n            from pymeter.api.samplers import HttpSampler\n\n\n            # create HTTP sampler, sends a get request to the given url\n            http_sampler1 = HttpSampler(\"echo_get_request\", \"https://postman-echo.com/get?var=1\")\n            http_sampler2 = HttpSampler(\"echo_get_request\", \"https://postman-echo.com/get?var=2\")\n            http_sampler3 = HttpSampler(\"echo_get_request\", \"https://postman-echo.com/get?var=3\")\n\n\n            # create a setup thread group\n            thread_group_setup = SetupThreadGroup(http_sampler1)\n\n            # create a thread group that will rump up 10 threads in 1 second and\n            # hold the load for additional 10 seconds, give it the http sampler as a child input\n            thread_group_main = ThreadGroupWithRampUpAndHold(10, 1,10, http_sampler2)\n\n            # create a teardown thread group\n            thread_group_setup = TeardownThreadGroup(http_sampler3)\n\n            # create a test plan with the required thread group\n            test_plan = TestPlan(thread_group_setup, thread_group_main, thread_group_setup)\n\n            # run the test plan and take the results\n            stats = test_plan.run()\n\n\n            # Assert that the 99th percentile of response time is less than 2000 milliseconds.\n            assert (\n                stats.sample_time_99_percentile_milliseconds <= 2000\n            ), f\"99th precentile should be less than 2000 milliseconds, got {stats.sample_time_99_percentile_milliseconds}\"\nexample - 3:\n--------------\nWe can use a `CsvDataset` to append a unique dataset to our test elements,\nIn this example, we will generate unique data for our entire test plan:\n\n      .. code-block:: python\n\n            from pymeter.api.config import TestPlan, ThreadGroupSimple, CsvDataset\n            from pymeter.api.samplers import HttpSampler\n            from pymeter.api.timers import ConstantTimer\n\n\n            timer = ConstantTimer(2000)\n            csv_data_set = CsvDataset(\"playground/file.csv\")\n            http_sampler1 = HttpSampler(\n                \"Echo_${id}\", \"https://postman-echo.com/get?var=${id}\", timer\n            )\n            thread_group1 = ThreadGroupSimple(3, 1)\n            thread_group1.children(http_sampler1)\n\n\n            http_sampler2 = HttpSampler(\"Echo_${id}\", \"https://postman-echo.com/get?var=do\", timer)\n            thread_group2 = ThreadGroupSimple(3, 1, http_sampler2)\n            test_plan = TestPlan(thread_group1, thread_group2, csv_data_set)\n            stats = test_plan.run()\n\nexample - 4:\n--------------\n\nWe can create vars from with in JMeters context using the `Vars` class\n\n      .. code-block:: python\n\n            from pymeter.api.config import TestPlan, ThreadGroupSimple, Vars\n            from pymeter.api.samplers import HttpSampler\n            from pymeter.api.timers import ConstantTimer\n            from pymeter.api.reporters import HtmlReporter\n\n            jmeter_variables = Vars(id1=\"value1\", id2=\"value2\")\n            html_reporter = HtmlReporter()\n            timer = ConstantTimer(2000)\n            http_sampler1 = HttpSampler(\n                \"Echo_${id1}\", \"https://postman-echo.com/get?var=${id1}\", timer\n            )\n            thread_group1 = ThreadGroupSimple(3, 1)\n            thread_group1.children(http_sampler1)\n\n\n            http_sampler2 = HttpSampler(\"Echo_${id2}\", \"https://postman-echo.com/get?var=do\", timer)\n            thread_group2 = ThreadGroupSimple(3, 1, http_sampler2)\n            test_plan = TestPlan(thread_group1, thread_group2, html_reporter, jmeter_variables)\n            stats = test_plan.run()\n\nWe can also set a single variable using the `set` method\n      .. code-block:: python\n\n            from pymeter.api.config import Vars\n            jmeter_variables = Vars(id1=\"value1\", id2=\"value2\")\n            jmeter_variables.set(\"id1\", \"v2\")\n\nexample - 5:\n--------------\n\nWe Can also generate data for each thread group:\n\n      .. code-block:: python\n\n            from pymeter.api.config import TestPlan, ThreadGroupSimple, CsvDataset\n            from pymeter.api.samplers import HttpSampler\n            from pymeter.api.timers import ConstantTimer\n\n\n            timer = ConstantTimer(2000)\n            csv_data_set1 = CsvDataset(\"playground/file1.csv\")\n            csv_data_set2 = CsvDataset(\"playground/file2.csv\")\n            http_sampler1 = HttpSampler(\n                \"Echo_${id}\", \"https://postman-echo.com/get?var=${id}\", timer\n            )\n            thread_group1 = ThreadGroupSimple(3, 1)\n            thread_group1.children(http_sampler1, csv_data_set1)\n\n\n            http_sampler2 = HttpSampler(\"Echo_${id}\", \"https://postman-echo.com/get?var=do\", timer)\n            thread_group2 = ThreadGroupSimple(3, 1, http_sampler2, csv_data_set2)\n            test_plan = TestPlan(thread_group1, thread_group2)\n            stats = test_plan.run()\n\n\nClasses\n-------------\n\"\"\"\nimport os\nfrom jnius import JavaException\n\nfrom pymeter.api import (\n    ChildrenAreNotAllowed,\n    TestPlanChildElement,\n    ThreadGroupChildElement,\n)\n\n\nclass BaseConfigElement(TestPlanChildElement):\n    \"\"\"base class for all config elements\"\"\"\n\n\nclass Vars(TestPlanChildElement):\n    \"\"\"Vars are key value pairs\"\"\"\n\n    def __init__(self, **variables) -> None:\n        self._vars_instance = TestPlanChildElement.jmeter_class.vars()\n        for key, value in variables.items():\n            self.set(key, value)\n        super().__init__()\n\n    def children(self, *children):\n        raise ChildrenAreNotAllowed(\"Cant append children to vars\")\n\n    def set(self, key: str, value: str):\n        \"\"\"Sets a single key value pair\"\"\"\n        if not isinstance(key, str):\n            raise TypeError(\"Keys must be strings\")\n\n        self._vars_instance.set(key, str(value))\n        return self\n\n\nclass CsvDataset(TestPlanChildElement, ThreadGroupChildElement):\n    \"\"\"\n    csv data set allows you to append unique data set to samplers\n    \"\"\"\n\n    def __init__(self, csv_file: str) -> None:\n        if not os.path.exists(csv_file):\n            raise FileNotFoundError(f\"Couldn't find file {csv_file}\")\n        self._csv_dataset_instance = TestPlanChildElement.jmeter_class.csvDataSet(\n            csv_file\n        )\n        super().__init__()\n\n    def children(self, *children):\n        raise ChildrenAreNotAllowed(\"Cant append children to a csv_data_set\")\n\n\nclass TestPlan(BaseConfigElement):\n    \"\"\"\n    This is the object that will call on the invocation of the test in the JMeter engine.\n    \"\"\"\n\n    class TestPlanStats(BaseConfigElement):\n        \"\"\"test stats\"\"\"\n\n        def __init__(self, java_instance) -> None:\n            self._test_plan_stats_instance = java_instance\n            super().__init__()\n\n        @property\n        def sample_time_mean_milliseconds(self):\n            \"\"\"returns the mean of sample times in milliseconds\"\"\"\n            return self.java_wrapped_element.overallStats.sampleTime().mean().toMillis()\n\n        @property\n        def sample_time_min_milliseconds(self):\n            \"\"\"returns the min of sample times in milliseconds\"\"\"\n            return self.java_wrapped_element.overallStats.sampleTime().min().toMillis()\n\n        @property\n        def sample_time_median_milliseconds(self):\n            \"\"\"returns the median of sample times in milliseconds\"\"\"\n            return (\n                self.java_wrapped_element.overallStats.sampleTime().median().toMillis()\n            )\n\n        @property\n        def sample_time_90_percentile_milliseconds(self):\n            \"\"\"returns the 90th percentile of sample times in milliseconds\"\"\"\n            return (\n                self.java_wrapped_element.overallStats.sampleTime().perc90().toMillis()\n            )\n\n        @property\n        def sample_time_95_percentile_milliseconds(self):\n            \"\"\"returns the 95th percentile of sample times in milliseconds\"\"\"\n            return (\n                self.java_wrapped_element.overallStats.sampleTime().perc95().toMillis()\n            )\n\n        @property\n        def sample_time_99_percentile_milliseconds(self):\n            \"\"\"returns the 99th percentile of sample times in milliseconds\"\"\"\n            return (\n                self.java_wrapped_element.overallStats.sampleTime().perc99().toMillis()\n            )\n\n        @property\n        def sample_time_max_milliseconds(self):\n            \"\"\"returns the max of sample times in milliseconds\"\"\"\n            return self.java_wrapped_element.overallStats.sampleTime().max().toMillis()\n\n        @property\n        def duration_milliseconds(self):\n            \"\"\"returns the max of sample times in milliseconds\"\"\"\n            return self.java_wrapped_element.duration().toMillis()\n\n    def __init__(self, *children: TestPlanChildElement) -> None:\n\n        self._test_plan_instance = BaseConfigElement.jmeter_class.testPlan()\n        self.children(*children)\n\n        super().__init__()\n\n    def children(self, *children):\n        if not all(isinstance(c, TestPlanChildElement) for c in children):\n            raise TypeError(\"only takes children of type `TestPlanChildElement`\")\n        return super().children(*children)\n\n    def run(self):\n        \"\"\"\n        *run()* will execute the test plan code and return an object with aggregated results.\n\n        This method is **blocking** and therefore the entire program will hang until the method is completed.\n\n        By default, run prints stats to the stdio, for other reporting options please do check the `reporters <reporters.html>`_ page\n\n        \"\"\"\n        try:\n            return TestPlan.TestPlanStats(self._test_plan_instance.run())\n        except JavaException as java_exception:\n            print(\"\\n\\t at \".join(java_exception.stacktrace))\n            raise java_exception\n\n\nclass BaseThreadGroup(BaseConfigElement):\n    \"\"\"base class for all thread groups\"\"\"\n\n    def __init__(self, *children: ThreadGroupChildElement) -> None:\n        self.children(*children)\n        super().__init__()\n\n    def children(self, *children):\n        if not all(isinstance(c, ThreadGroupChildElement) for c in children):\n            raise TypeError(\"only takes children of type `ThreadGroupChildElement`\")\n        return super().children(*children)\n\n\nclass SetupThreadGroup(BaseThreadGroup):\n    \"\"\"thread group for setting up test from within the context of JMeter\"\"\"\n\n    def __init__(self, *children: ThreadGroupChildElement) -> None:\n\n        self._setup_thread_group_instance = (\n            BaseConfigElement.jmeter_class.setupThreadGroup()\n        )\n        super().__init__(*children)\n\n\nclass TeardownThreadGroup(BaseThreadGroup):\n    \"\"\"thread group for tearing down test from within the context of JMeter\"\"\"\n\n    def __init__(self, *children: ThreadGroupChildElement) -> None:\n\n        self._teardown_thread_group_instance = (\n            BaseConfigElement.jmeter_class.teardownThreadGroup()\n        )\n        super().__init__(*children)\n\n\nclass ThreadGroupSimple(BaseThreadGroup):\n    \"\"\"\n    Thread group defined by number of threads and number of iterations\n\n    \"\"\"\n\n    def __init__(\n        self,\n        number_of_threads: int,\n        iterations: int,\n        *children: ThreadGroupChildElement,\n        name: str = \"Thread Group\",\n    ) -> None:\n        self._thread_group_simple_instance = BaseConfigElement.jmeter_class.threadGroup(\n            name, number_of_threads, iterations\n        )\n        super().__init__(*children)\n\n\nclass ThreadGroupWithRampUpAndHold(BaseThreadGroup):\n    \"\"\"Thread group that rumps up a number of thread in a given number of seconds and then holds the load for a given number of seconds.\"\"\"\n\n    def __init__(\n        self,\n        number_of_threads: int,\n        rampup_time_seconds: float,\n        holdup_time_seconds: float,\n        *children,\n        name: str = \"Thread Group\",\n    ) -> None:\n\n        self._thread_group_with_ramp_up_and_hold_instance = (\n            BaseConfigElement.jmeter_class.threadGroup(name)\n        )\n        self._ramp_to_and_hold_instance = (\n            self._thread_group_with_ramp_up_and_hold_instance.rampToAndHold(\n                number_of_threads,\n                BaseConfigElement.java_duration.ofSeconds(rampup_time_seconds),\n                BaseConfigElement.java_duration.ofSeconds(holdup_time_seconds),\n            )\n        )\n        super().__init__(*children)\n"
  },
  {
    "path": "src/pymeter/api/postprocessors.py",
    "content": "\"\"\"\nPost processors are attached to samplers and are executed after the parent sampler gets executed.\nThe most common use case for a post-processor is to add value on the response coming from the sampler.\n\nexample - 1:\n--------------\n*Correlation* is when the response (or some parts of it) of one sampler is used in subsequent samplers.\nLets look at an example to how we can do that with the JsonExtractor post-processor\n\n      .. code-block:: python\n\n        # Json extractor will take the value stored in the json paht args->var and place it in a variable called `variable`\n\n        json_extractor = JsonExtractor(\"variable\", \"args.var\")\n        http_sampler = HttpSampler(\n            \"Echo\", \"https://postman-echo.com/get?var=1\", json_extractor\n        )\n\n        # The extracted value is now used to define the name of the dummy sampler.\n        dummy_sampler = DummySampler(\"dummy ${variable}\", \"hi dummy\")\n        thread_group = ThreadGroupSimple(1, 1, http_sampler, dummy_sampler)\n        test_plan = TestPlan(thread_group)\n        test_plan.run()\n\n\"\"\"\nfrom pymeter.api import ChildrenAreNotAllowed, ThreadGroupChildElement\n\n\nclass BasePostProcessors(ThreadGroupChildElement):\n    \"\"\"base class for all post processors\"\"\"\n    def children(self, *children):\n        raise ChildrenAreNotAllowed(\"Cant append children to a post processor\")\n\n\nclass JsonExtractor(BasePostProcessors):\n    \"\"\"\n    Extracts a value from a json response using a json path.\n    Read more about json path `here <https://support.smartbear.com/alertsite/docs/monitors/api/endpoint/jsonpath.html>`_\n    \"\"\"\n\n    def __init__(self, variable_name: str, jmes_path: str) -> None:\n        self._json_extractor_instance = BasePostProcessors.jmeter_class.jsonExtractor(\n            variable_name, jmes_path\n        )\n\n        super().__init__()\n"
  },
  {
    "path": "src/pymeter/api/reporters.py",
    "content": "\"\"\"\nReporters represent measurements about the samplers for testers to analyze.\n\nexample - 1:\n--------------\nHTML reporter creates a JMeter html dashboard\nYou can read more about JMeter's dashboard `here <https://jmeter.apache.org/usermanual/generating-dashboard.html>`_\n\nBy default, resulting dashboard will be saved at output/html-report-{current-date %m%d%Y%H%M%S}\n      .. code-block:: python\n\n            from pymeter.api.config import TestPlan, ThreadGroupWithRampUpAndHold\n            from pymeter.api.reporters import HtmlReporter\n            from pymeter.api.samplers import HttpSampler\n\n\n            http_sampler = HttpSampler(\"Echo\", \"https://postman-echo.com/get?var=1\")\n            thread_group = ThreadGroupWithRampUpAndHold(2, 1, 2, http_sampler)\n            html_reporter = HtmlReporter()\n            test_plan = TestPlan(thread_group, html_reporter)\n            test_plan.run()\n\nexample - 2:\n--------------\nYou can override the directory in the object's constructor.\n\nBy default, resulting dashboard will be saved at output/html-report-{current-date %m%d%Y%H%M%S}\n      .. code-block:: python\n\n            html_reporter = HtmlReporter(\"somefolder\")\n\n\"\"\"\nimport os\nfrom datetime import datetime\nfrom typing import Optional\n\nfrom pymeter.api import ChildrenAreNotAllowed, TestPlanChildElement\n\nclass BaseReporter(TestPlanChildElement):\n    \"\"\"base class for all reporters\"\"\"\n    def children(self, *children):\n        raise ChildrenAreNotAllowed(\"Cant append children to a reporter\")\n\n\nclass HtmlReporter(BaseReporter):\n    \"\"\"Reports results to HTML format\"\"\"\n\n    def __init__(self, directory: Optional[str] = None) -> None:\n        if directory:\n            path_parts = os.path.split(directory)\n            self._html_reporter_instance = HtmlReporter.jmeter_class.htmlReporter(\n                os.path.join(*path_parts[0 : len(path_parts) - 1]), path_parts[-1]\n            )\n        else:\n\n            self._html_reporter_instance = HtmlReporter.jmeter_class.htmlReporter(\n                \"output\", f'html-report-{datetime.now().strftime(\"%m%d%Y%H%M%S\")}'\n            )\n        super().__init__()\n"
  },
  {
    "path": "src/pymeter/api/samplers.py",
    "content": "\"\"\"\nSamplers are the basic test script steps.\n\nThey perform a specific action (eg, send an HTTP request) and report their time of completion,\nin other words, they are the subject which our test measure.\n\nexample - 1:\n--------------\nThe most commonly used sampler is the HTTP sampler, lets take a look at a trivial example:\nIn this example, our http sampler generates a get request to the postman echo server\n\n\n      .. code-block:: python\n\n            from pymeter.api.samplers import HttpSampler\n            http_sampler = HttpSampler(\"echo_get_request\", \"https://postman-echo.com/get?var=1\")\n\nexample - 2:\n--------------\nLets add a header to the request:\nHere the headers name is `SomeKey` and it's value is `some_value`\n\n      .. code-block:: python\n\n        from pymeter.api.samplers import HttpSampler\n        http_sampler = HttpSampler(\"echo_get_request\", \"https://postman-echo.com/get?var=1\").header(\"SomeKey\", \"some_value\")\n\n\n\nexample - 3:\n--------------\nNow lets send a post request:\nThis post request has an application-json as a content type, and the body has a single value with `var1` being the key and 1 being the value\n\n\n      .. code-block:: python\n\n            from pymeter.api import ContentType\n            from pymeter.api.samplers import HttpSampler\n\n            http_sampler = (\n                HttpSampler(\"echo_get_request\", \"https://postman-echo.com/get?var=1\")\n                .header(\"SomeKey\", \"some_value\")\n                .post({\"var1\": 1}, ContentType.APPLICATION_JSON)\n            )\n\nexample - 4:\n--------------\nThe Dummy Sampler in JMeter simulates requests to the server without actually running the requests,\nserving as a placeholder.\n\n\n      .. code-block:: python\n\n            from pymeter.api.samplers import DummySampler\n            dummy_sampler = DummySampler(\"dummy_sampler\", \"hi dummy\")\n\nexample - 5:\n--------------\nLets send a post request with multipart/form-data:\nThis post request has a multipart/form-data as a content type, and the body has a single file with `name` being the key and `path/to/file.ext` being the file_path\n\n\n      .. code-block:: python\n\n            from pymeter.api import ContentType\n            from pymeter.api.samplers import HttpSampler\n\n            http_sampler = (\n                HttpSampler(\"echo_get_request\", \"http://httpbin.org/post\")\n                .post_multipart_formdata(\"name\", \"path/to/file.ext\", ContentType.MULTIPART_FORM_DATA)\n            )\n\n\"\"\"\nimport json\nimport os\nfrom typing import Dict, List, Union\n\n\ntry:\n    from typing import Self\nexcept ImportError:\n    from typing_extensions import Self\nfrom pymeter.api import ThreadGroupChildElement, ContentType\nfrom pymeter.api.config import BaseThreadGroup\n\n\nclass BaseSampler(ThreadGroupChildElement, BaseThreadGroup):\n    \"\"\"base class for all samplers\"\"\"\n\n\nclass DummySampler(BaseSampler):\n    \"\"\"\n    The Dummy Sampler in JMeter simulates requests to the server without actually running the requests,\n    serving as a placeholder.\n    \"\"\"\n\n    def __init__(self, name: str, response_body: str, *children) -> None:\n        self._dummy_sampler_instance = BaseSampler.jmeter_class.dummySampler(\n            name, response_body\n        )\n        super().__init__(*children)\n\n\nclass HttpSampler(BaseSampler):\n    \"\"\"\n    Http sampler sends an http requests to a target server side\n    By default it sends HTTP get request\n    \"\"\"\n\n    def __init__(self, name: str, url: str, *children) -> None:\n        \"\"\"\n\n        Args:\n\n            name (str): name to be displayed in reports\n\n            url (str): Full http\\\\s url (e.g - https://postman-echo.com/get)\n        \"\"\"\n        self._http_sampler_instance = BaseSampler.jmeter_class.httpSampler(name, url)\n\n        super().__init__(*children)\n\n    def post(self, body: Union[Dict, List, str], content_type: ContentType) -> Self:\n        \"\"\"Create a post request sampler\n\n        Args:\n\n            body (Union[Dict, List, str]): body of the request\n\n            content_type (ContentType): the content type of the request\n\n\n        Returns:\n\n            Self: a new sampler instance\n        \"\"\"\n\n        if isinstance(body, (dict, list)):\n            body = json.dumps(body)\n        elif not isinstance(body, str):\n            raise TypeError(\n                f\"Invalid type, expected `list`, 'dict', or 'str'. got {type(body)}\"\n            )\n\n        self._http_sampler_instance = self.java_wrapped_element.post(\n            body, content_type.value\n        )\n        return self\n\n    def header(self, key: str, value: str) -> Self:\n        \"\"\"Append a header to request\n\n        Args:\n\n            key (str): Headers name\n            value (str): Headers value\n\n\n        Returns:\n\n            Self: a new sampler instance\n        \"\"\"\n        if not isinstance(key, str):\n            raise TypeError(\"key field must be a string\")\n        if not isinstance(value, str):\n            raise TypeError(\"value field must be a string\")\n        self._http_sampler_instance = self.java_wrapped_element.header(key, value)\n        return self\n\n    def post_multipart_formdata(self, name: str, file_path: str, content_type: ContentType) -> Self:\n        \"\"\"Create a post request sampler\n\n        Args:\n\n            name: the name to be assigned to the file part.\n\n            file_path: path to the file to be sent in the multipart form body.\n\n            content_type (ContentType): the content type of the request\n\n\n        Returns:\n\n            Self: a new sampler instance\n        \"\"\"\n        if not os.path.exists(file_path):\n            raise FileNotFoundError(file_path)\n        self._http_sampler_instance = self.java_wrapped_element.bodyFilePart(\n            name, file_path, content_type.value\n        ).method(\"POST\")\n        return self\n"
  },
  {
    "path": "src/pymeter/api/timers.py",
    "content": "\"\"\"\nTimers are used to pause the thread for a given amount of time.\nThe goal is to emulate either a user think time or any other time related aspect of the test script.\n\n.. note::\n    Timers apply to all samplers in their scope.\n\n.. note::\n    Note that timers are processed before each sampler in the scope in which they are found;\n    if there are several timers in the same scope, all the timers will be processed before each sampler.\n    Timers are only processed in conjunction with a sampler. A timer which is not in the same scope as a sampler will not be processed at all.\n\nexample - 1:\n--------------\nThis uniform random timer is used for each HTTP request in this test script\n\n\n      .. code-block:: python\n\n            from pymeter.api.config import TestPlan, ThreadGroupSimple\n            from pymeter.api.samplers import HttpSampler\n            from pymeter.api.timers import UniformRandomTimer\n\n            timer = UniformRandomTimer(2000, 5000)\n            http_sampler = HttpSampler(\"Echo\", \"https://postman-echo.com/get?var=1\", timer)\n            thread_group = ThreadGroupSimple(1, 1, http_sampler)\n            test_plan = TestPlan(thread_group)\n            stats = test_plan.run()\n\nexample - 2:\n--------------\nThis uniform random timer is used for the entire thread group\n\n\n      .. code-block:: python\n\n            from pymeter.api.config import TestPlan, ThreadGroupSimple\n            from pymeter.api.samplers import HttpSampler\n            from pymeter.api.timers import UniformRandomTimer\n\n            timer = UniformRandomTimer(2000, 5000)\n            http_sampler = HttpSampler(\"Echo\", \"https://postman-echo.com/get?var=1\")\n            thread_group = ThreadGroupSimple(1, 1, http_sampler, timer)\n            test_plan = TestPlan(thread_group)\n            stats = test_plan.run()\n\nexample - 3:\n--------------\nConstant timer imposes a constant wait time.\n\n\n      .. code-block:: python\n\n            from pymeter.api.config import TestPlan, ThreadGroupSimple\n            from pymeter.api.samplers import HttpSampler\n            from pymeter.api.timers import ConstantTimer\n\n            timer = ConstantTimer(2000)\n            http_sampler = HttpSampler(\"Echo\", \"https://postman-echo.com/get?var=1\")\n            thread_group = ThreadGroupSimple(1, 1, http_sampler, timer)\n            test_plan = TestPlan(thread_group)\n            stats = test_plan.run()\n\"\"\"\nfrom pymeter.api import ChildrenAreNotAllowed, ThreadGroupChildElement\n\n\nclass BaseTimer(ThreadGroupChildElement):\n    \"base class for all timers\"\n    def children(self, *children):\n        raise ChildrenAreNotAllowed(\"Cant append children to a timer\")\n\nclass ConstantTimer(BaseTimer):\n    \"\"\"\n    Imposes a constant wait time.\n\n    \"\"\"\n\n    def __init__(self, time_milliseconds: int) -> None:\n        self._constant_timer_instance = UniformRandomTimer.jmeter_class.constantTimer(\n            BaseTimer.java_duration.ofMillis(time_milliseconds)\n        )\n        super().__init__()\n\n\nclass UniformRandomTimer(BaseTimer):\n    \"\"\"\n    Randomizes wait times with uniform distribution\n\n\n    .. note::\n        UniformRandomTimer minimum and maximum parameters differ from the ones used by JMeter Uniform Random Timer element,\n        to make it simpler for users with no JMeter background.\n    \"\"\"\n\n    def __init__(self, bottom_milliseconds: int, top_milliseconds: int) -> None:\n        self._uniform_random_timer_instance = (\n            UniformRandomTimer.jmeter_class.uniformRandomTimer(\n                BaseTimer.java_duration.ofMillis(bottom_milliseconds),\n                BaseTimer.java_duration.ofMillis(top_milliseconds),\n            )\n        )\n        super().__init__()\n"
  },
  {
    "path": "tox.ini",
    "content": "[tox]\nskipsdist = true\nenvlist = py38,py39,py310,py311\n[gh-actions]\npython = \n    3.8:py38\n    3.9:py39\n    3.10:py310\n    3.11:py311\n[testenv]\nwhitelist_externals = poetry\nallowlist_externals = poetry\ncommands =\n    poetry install -v\n    poetry run coverage run -m unittest discover\n    coverage report\n"
  },
  {
    "path": "utests/__init__.py",
    "content": ""
  },
  {
    "path": "utests/resources/test_data.csv",
    "content": "id\n1\n2\n3"
  },
  {
    "path": "utests/test_assertions.py",
    "content": "\"\"\"unittest module\"\"\"\nimport json\nimport os\nfrom unittest import TestCase, main\nimport uuid\nfrom pymeter.api import ChildrenAreNotAllowed\nfrom pymeter.api.config import TestPlan, ThreadGroupSimple\nfrom pymeter.api.postprocessors import JsonExtractor\nfrom pymeter.api.reporters import HtmlReporter\nfrom pymeter.api.samplers import DummySampler, HttpSampler\nfrom pymeter.api.assertions import ResponseAssertion\n\n\nclass TestAssertions(TestCase):\n    def test_assertion_object_creation(self):\n        response_assertion = ResponseAssertion()\n        self.assertEqual(\n            response_assertion.get_java_class_name(),\n            \"us.abstracta.jmeter.javadsl.core.assertions.DslResponseAssertion\",\n        )\n\n    def test_assertion_children(self):\n        with self.assertRaises(ChildrenAreNotAllowed) as exp:\n            ResponseAssertion().children()\n        self.assertEqual(\n            str(exp.exception),\n            \"Cant append children to assertion\",\n        )\n\n    def test_assertion_object_creation_with_contains_substrings(self):\n        response_assertion = ResponseAssertion().contains_substrings(\"var\", \"args\")\n        self.assertEqual(\n            response_assertion.get_java_class_name(),\n            \"us.abstracta.jmeter.javadsl.core.assertions.DslResponseAssertion\",\n        )\n\n    def test_assertion_object_should_pass(self):\n        response_assertion = ResponseAssertion().contains_substrings(\"var\", \"args\")\n        output_dir = os.path.join(\"output\", str(uuid.uuid4()))\n        html_reporter = HtmlReporter(output_dir)\n        http_sampler = HttpSampler(\n            \"Echo\", \"https://postman-echo.com/get?var=1\", response_assertion\n        )\n        thread_group = ThreadGroupSimple(1, 1)\n        thread_group.children(http_sampler)\n        test_plan = TestPlan(thread_group, html_reporter)\n        test_plan.run()\n        path_to_stats = os.path.join(output_dir, \"statistics.json\")\n        with open(path_to_stats, \"r\", encoding=\"utf-8\") as stats_file:\n            self.assertEqual(0, json.loads(stats_file.read())[\"Total\"][\"errorCount\"])\n\n    def test_assertion_object_should_fail(self):\n        response_assertion = ResponseAssertion().contains_substrings(\"notfound\")\n        output_dir = os.path.join(\"output\", str(uuid.uuid4()))\n        html_reporter = HtmlReporter(output_dir)\n        http_sampler = HttpSampler(\n            \"Echo\", \"https://postman-echo.com/get?var=1\", response_assertion\n        )\n        thread_group = ThreadGroupSimple(1, 3)\n        thread_group.children(http_sampler)\n        test_plan = TestPlan(thread_group, html_reporter)\n        test_plan.run()\n        path_to_stats = os.path.join(output_dir, \"statistics.json\")\n        with open(path_to_stats, \"r\", encoding=\"utf-8\") as stats_file:\n            self.assertEqual(3, json.loads(stats_file.read())[\"Total\"][\"errorCount\"])\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "utests/test_csv_data_set.py",
    "content": "\"\"\"unittest module\"\"\"\nimport os\nimport uuid\nfrom unittest import TestCase, main\nfrom collections import Counter\nfrom pymeter.api import ChildrenAreNotAllowed\nfrom pymeter.api.config import (\n    TestPlan,\n    ThreadGroupSimple,\n    CsvDataset,\n)\nfrom pymeter.api.reporters import HtmlReporter\nfrom pymeter.api.samplers import HttpSampler\n\n\nCSV_FILE_PATH = \"utests/resources/test_data.csv\"\n\nclass TestCsvDataSet(TestCase):\n    \"\"\"Testing csv data sets\"\"\"\n\n    def test_csv_data_set_children(self):\n        with self.assertRaises(ChildrenAreNotAllowed) as exp:\n            CsvDataset(CSV_FILE_PATH).children()\n        self.assertEqual(\n            str(exp.exception),\n            \"Cant append children to a csv_data_set\",\n        )\n\n    def test_csv_data_set_file_not_found(self):\n        with self.assertRaises(FileNotFoundError) as exp:\n            CsvDataset(\"dosntexist.csv\").children()\n        self.assertEqual(\n            str(exp.exception),\n            \"Couldn't find file dosntexist.csv\",\n        )\n\n    def test_data_set_for_entire_test_plan(self):\n\n        output_dir = os.path.join(\"output\", str(uuid.uuid4()))\n        html_reporter = HtmlReporter(output_dir)\n        csv_data_set = CsvDataset(CSV_FILE_PATH)\n        http_sampler1 = HttpSampler(\n            \"Echo_${id}\", \"https://postman-echo.com/get?var=${id}\"\n        )\n        thread_group1 = ThreadGroupSimple(3, 1)\n        thread_group1.children(http_sampler1)\n\n        http_sampler2 = HttpSampler(\"Echo_${id}\", \"https://postman-echo.com/get?var=do\")\n        thread_group2 = ThreadGroupSimple(3, 1, http_sampler2)\n        test_plan = TestPlan(thread_group1, thread_group2, html_reporter, csv_data_set)\n        test_plan.run()\n\n        self.assertTrue(os.path.exists(output_dir))\n        path_to_jtl = os.path.join(output_dir, \"report.jtl\")\n        with open(path_to_jtl, \"r\", encoding=\"utf-8\") as jtl_file:\n            next(jtl_file)\n            all_samplers = [line.split(\",\")[2] for line in jtl_file]\n            cntr = Counter(all_samplers)\n\n            self.assertDictEqual({\"Echo_2\": 2, \"Echo_3\": 2, \"Echo_1\": 2}, cntr)\n\n    def test_data_set_for_only_one_thread_group(self):\n\n        output_dir = os.path.join(\"output\", str(uuid.uuid4()))\n        html_reporter = HtmlReporter(output_dir)\n        csv_data_set = CsvDataset(CSV_FILE_PATH)\n        http_sampler1 = HttpSampler(\n            \"Echo_${id}\", \"https://postman-echo.com/get?var=${id}\"\n        )\n        thread_group1 = ThreadGroupSimple(3, 1)\n        thread_group1.children(http_sampler1, csv_data_set)\n\n        http_sampler2 = HttpSampler(\"Echo_${id}\", \"https://postman-echo.com/get?var=do\")\n        thread_group2 = ThreadGroupSimple(3, 1, http_sampler2)\n        test_plan = TestPlan(thread_group1, thread_group2, html_reporter)\n        test_plan.run()\n\n        self.assertTrue(os.path.exists(output_dir))\n        path_to_jtl = os.path.join(output_dir, \"report.jtl\")\n        with open(path_to_jtl, \"r\", encoding=\"utf-8\") as jtl_file:\n            next(jtl_file)\n            all_samplers = [line.split(\",\")[2] for line in jtl_file]\n            cntr = Counter(all_samplers)\n            self.assertDictEqual(\n                {\"Echo_${id}\": 3, \"Echo_2\": 1, \"Echo_3\": 1, \"Echo_1\": 1}, cntr\n            )\n\n    def test_data_set_too_small(self):\n\n        output_dir = os.path.join(\"output\", str(uuid.uuid4()))\n        html_reporter = HtmlReporter(output_dir)\n        csv_data_set = CsvDataset(CSV_FILE_PATH)\n        http_sampler1 = HttpSampler(\n            \"Echo_${id}\", \"https://postman-echo.com/get?var=${id}\"\n        )\n        thread_group = ThreadGroupSimple(6, 1)\n        thread_group.children(http_sampler1, csv_data_set)\n\n\n        test_plan = TestPlan(thread_group, html_reporter)\n        test_plan.run()\n\n        self.assertTrue(os.path.exists(output_dir))\n        path_to_jtl = os.path.join(output_dir, \"report.jtl\")\n        with open(path_to_jtl, \"r\", encoding=\"utf-8\") as jtl_file:\n            next(jtl_file)\n            all_samplers = [line.split(\",\")[2] for line in jtl_file]\n            cntr = Counter(all_samplers)\n            self.assertDictEqual(\n                {'Echo_3': 2, 'Echo_1': 2, 'Echo_2': 2}, cntr\n            )\n    def test_data_set_too_big(self):\n\n        output_dir = os.path.join(\"output\", str(uuid.uuid4()))\n        html_reporter = HtmlReporter(output_dir)\n        csv_data_set = CsvDataset(CSV_FILE_PATH)\n        http_sampler1 = HttpSampler(\n            \"Echo_${id}\", \"https://postman-echo.com/get?var=${id}\"\n        )\n        thread_group = ThreadGroupSimple(2, 1)\n        thread_group.children(http_sampler1)\n\n\n        test_plan = TestPlan(thread_group, html_reporter, csv_data_set)\n        test_plan.run()\n\n        self.assertTrue(os.path.exists(output_dir))\n        path_to_jtl = os.path.join(output_dir, \"report.jtl\")\n        with open(path_to_jtl, \"r\", encoding=\"utf-8\") as jtl_file:\n            next(jtl_file)\n            all_samplers = [line.split(\",\")[2] for line in jtl_file]\n            cntr = Counter(all_samplers)\n            self.assertDictEqual(\n                {'Echo_1': 1, 'Echo_2': 1}, cntr\n            )\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "utests/test_postprocessors.py",
    "content": "\"\"\"unittest module\"\"\"\nimport os\nfrom unittest import TestCase, main\nimport uuid\nfrom pymeter.api import ChildrenAreNotAllowed\nfrom pymeter.api.config import TestPlan, ThreadGroupSimple\nfrom pymeter.api.postprocessors import JsonExtractor\nfrom pymeter.api.reporters import HtmlReporter\nfrom pymeter.api.samplers import DummySampler, HttpSampler\n\n\nclass TestSampler(TestCase):\n    \"\"\"Testing creation of a http sampler object\"\"\"\n\n    def test_http_sampler(self):\n        \"\"\"send request to postman echo\"\"\"\n        json_extractor = JsonExtractor(\"variable\", \"args.var\")\n        http_sampler = HttpSampler(\n            \"Echo\", \"https://postman-echo.com/get?var=1\", json_extractor\n        )\n        dummy_sampler = DummySampler(\"dummy ${variable}\", \"hi dummy\")\n        tg1 = ThreadGroupSimple(1, 1, http_sampler, dummy_sampler)\n        output_dir = os.path.join(\"output\", str(uuid.uuid4()))\n        html_reporter = HtmlReporter(output_dir)\n        test_plan = TestPlan(tg1, html_reporter)\n        test_plan.run()\n        self.assertEqual(\n            json_extractor.get_java_class_name(),\n            \"us.abstracta.jmeter.javadsl.core.postprocessors.DslJsonExtractor\",\n        )\n        path_to_jtl = os.path.join(output_dir, \"report.jtl\")\n        with open(path_to_jtl, \"r\", encoding=\"utf-8\") as jtl_file:\n            next(jtl_file)\n            self.assertIn(\"dummy 1\", [line.split(\",\")[2] for line in jtl_file])\n\n    def test_postprocessor_children(self):\n        with self.assertRaises(ChildrenAreNotAllowed) as exp:\n            JsonExtractor(\"variable\", \"args.var\").children()\n        self.assertEqual(\n            str(exp.exception),\n            \"Cant append children to a post processor\",\n        )\n\n    def test_postprocessor_on_thread_group(self):\n        json_extractor = JsonExtractor(\"variable\", \"args.var\")\n\n        dummy_sampler = DummySampler(\"dummy\", \"hi dummy\")\n\n        tg1 = ThreadGroupSimple(1, 1, dummy_sampler, json_extractor)\n        test_plan = TestPlan(tg1)\n        test_plan.run()\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "utests/test_reporter.py",
    "content": "\"\"\"unittest module\"\"\"\nimport os\nimport uuid\nfrom unittest import TestCase, main\n\nfrom pymeter.api import ChildrenAreNotAllowed\nfrom pymeter.api.config import TestPlan, ThreadGroupWithRampUpAndHold\nfrom pymeter.api.reporters import HtmlReporter\nfrom pymeter.api.samplers import HttpSampler\n\n\nclass TestReporter(TestCase):\n    \"\"\"Testing creation of a http sampler object\"\"\"\n\n    def test_reporter_children(self):\n        with self.assertRaises(ChildrenAreNotAllowed) as exp:\n            HtmlReporter().children()\n        self.assertEqual(\n            str(exp.exception),\n            \"Cant append children to a reporter\",\n        )\n\n    def test_http_sampler(self):\n        \"\"\"create an HTML report\"\"\"\n        http_sampler = HttpSampler(\"Echo\", \"https://postman-echo.com/get?var=1\")\n        tg = ThreadGroupWithRampUpAndHold(2, 1, 2, http_sampler, name=\"Some Name\")\n        output_dir = os.path.join(\"output\", str(uuid.uuid4()))\n        html_reporter = HtmlReporter(output_dir)\n        tp = TestPlan(tg, html_reporter)\n        tp.run()\n        self.assertEqual(\n            html_reporter.get_java_class_name(),\n            \"us.abstracta.jmeter.javadsl.core.listeners.HtmlReporter\",\n        )\n        self.assertTrue(os.path.exists(output_dir))\n        path_to_jtl = os.path.join(output_dir, \"report.jtl\")\n        path_to_json = os.path.join(output_dir, \"statistics.json\")\n        path_to_html = os.path.join(output_dir, \"index.html\")\n        self.assertTrue(os.path.exists(path_to_jtl))\n        self.assertTrue(os.path.exists(path_to_json))\n        self.assertTrue(os.path.exists(path_to_html))\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "utests/test_sampler.py",
    "content": "\"\"\"unittest module\"\"\"\nfrom unittest import TestCase, main\n\nfrom parameterized import parameterized\n\nfrom pymeter.api import ContentType\nfrom pymeter.api.config import TestPlan, ThreadGroupSimple\nfrom pymeter.api.samplers import HttpSampler\nfrom pymeter.api.timers import ConstantTimer\n\n\nclass TestSampler(TestCase):\n    \"\"\"Testing creation of a http sampler object\"\"\"\n\n    def test_http_sampler(self):\n        # TODO: implement a way to extract output\n        \"\"\"send request to postman echo\"\"\"\n        http_sampler = HttpSampler(\"Echo\", \"https://postman-echo.com/get?var=1\")\n        tg1 = ThreadGroupSimple(1, 1, http_sampler)\n        test_plan = TestPlan(tg1)\n        test_plan.run()\n        self.assertEqual(\n            http_sampler.get_java_class_name(),\n            \"us.abstracta.jmeter.javadsl.http.DslHttpSampler\",\n        )\n\n    def test_http_sampler_with_valid_children(self):\n        \"\"\"send request to postman echo\"\"\"\n        timer = ConstantTimer(1000)\n        http_sampler = HttpSampler(\"Echo\", \"https://postman-echo.com/get?var=1\", timer)\n        self.assertEqual(\n            http_sampler.get_java_class_name(),\n            \"us.abstracta.jmeter.javadsl.http.DslHttpSampler\",\n        )\n\n    def test_http_sampler_with_valid_children_out_of_constructor(self):\n        \"\"\"send request to postman echo\"\"\"\n        timer = ConstantTimer(1000)\n        http_sampler = HttpSampler(\"Echo\", \"https://postman-echo.com/get?var=1\")\n        http_sampler.children(timer)\n        self.assertEqual(\n            http_sampler.get_java_class_name(),\n            \"us.abstracta.jmeter.javadsl.http.DslHttpSampler\",\n        )\n\n    @parameterized.expand([(e.name,) for e in ContentType])\n    def test_post_http_sampler_dict_input(self, content_type_name):\n        content_type_parameter = getattr(ContentType, content_type_name)\n        http_sampler = HttpSampler(\n            \"Echo\",\n            \"https://jsonplaceholder.typicode.com/posts\",\n        ).post({\"var1\": 1}, content_type_parameter)\n        self.assertEqual(\n            http_sampler.get_java_class_name(),\n            \"us.abstracta.jmeter.javadsl.http.DslHttpSampler\",\n        )\n        self.assertEqual(\n            content_type_parameter.value.__class__.__name__,\n            \"org.apache.http.entity.ContentType\",\n        )\n        self.assertEqual(\n            content_type_parameter.get_mime_type(),\n            content_type_parameter.value.getMimeType(),\n        )\n\n    def test_post_http_sampler_list_input(self):\n        http_sampler = HttpSampler(\n            \"Echo\",\n            \"https://jsonplaceholder.typicode.com/posts\",\n        ).post([1, 2, 3, 4], ContentType.APPLICATION_JSON)\n        self.assertEqual(\n            http_sampler.get_java_class_name(),\n            \"us.abstracta.jmeter.javadsl.http.DslHttpSampler\",\n        )\n\n    def test_post_http_sampler_str_input(self):\n        http_sampler = HttpSampler(\n            \"Echo\",\n            \"https://jsonplaceholder.typicode.com/posts\",\n        ).post('{\"name\": \"John Doe\"}', ContentType.APPLICATION_JSON)\n        self.assertEqual(\n            http_sampler.get_java_class_name(),\n            \"us.abstracta.jmeter.javadsl.http.DslHttpSampler\",\n        )\n\n    def test_post_http_sampler_int_input(self):\n        with self.assertRaises(TypeError) as exp:\n            http_sampler = HttpSampler(\n                \"Echo\",\n                \"https://jsonplaceholder.typicode.com/posts\",\n            ).post(1, ContentType.APPLICATION_JSON)\n            self.assertEqual(\n                http_sampler.get_java_class_name(),\n                \"us.abstracta.jmeter.javadsl.http.DslHttpSampler\",\n            )\n        self.assertEqual(\n            str(exp.exception),\n            \"Invalid type, expected `list`, 'dict', or 'str'. got <class 'int'>\",\n        )\n\n    def test_http_valid_header(self):\n        http_sampler = HttpSampler(\n            \"Echo\",\n            \"https://jsonplaceholder.typicode.com/posts\",\n        ).header(\"key1\", \"val1\")\n        self.assertEqual(\n            http_sampler.get_java_class_name(),\n            \"us.abstracta.jmeter.javadsl.http.DslBaseHttpSampler\",\n        )\n\n    def test_http_2_headers(self):\n        http_sampler = (\n            HttpSampler(\n                \"Echo\",\n                \"https://jsonplaceholder.typicode.com/posts\",\n            )\n            .header(\"key1\", \"val1\")\n            .header(\"key2\", \"val2\")\n        )\n        self.assertEqual(\n            http_sampler.get_java_class_name(),\n            \"us.abstracta.jmeter.javadsl.http.DslBaseHttpSampler\",\n        )\n\n    def test_http_duplicated_header(self):\n        http_sampler = (\n            HttpSampler(\n                \"Echo\",\n                \"https://jsonplaceholder.typicode.com/posts\",\n            )\n            .header(\"key1\", \"val1\")\n            .header(\"key1\", \"val2\")\n        )\n        self.assertEqual(\n            http_sampler.get_java_class_name(),\n            \"us.abstracta.jmeter.javadsl.http.DslBaseHttpSampler\",\n        )\n\n    def test_http_invalid_header_key(self):\n        with self.assertRaises(TypeError) as exp:\n            http_sampler = HttpSampler(\n                \"Echo\",\n                \"https://jsonplaceholder.typicode.com/posts\",\n            ).header(1, \"aa\")\n            self.assertEqual(\n                http_sampler.get_java_class_name(),\n                \"us.abstracta.jmeter.javadsl.http.DslBaseHttpSampler\",\n            )\n        self.assertEqual(\n            str(exp.exception),\n            \"key field must be a string\",\n        )\n\n    def test_http_invalid_header_value(self):\n        with self.assertRaises(TypeError) as exp:\n            http_sampler = HttpSampler(\n                \"Echo\",\n                \"https://jsonplaceholder.typicode.com/posts\",\n            ).header(\"key1\", 1)\n            self.assertEqual(\n                http_sampler.get_java_class_name(),\n                \"us.abstracta.jmeter.javadsl.http.DslBaseHttpSampler\",\n            )\n        self.assertEqual(\n            str(exp.exception),\n            \"value field must be a string\",\n        )\n\n    def test_http_multipart_body_file_not_found(self):\n        with self.assertRaises(FileNotFoundError) as exp:\n            http_sampler = HttpSampler(\n                \"Echo\",\n                \"https://jsonplaceholder.typicode.com/posts\",\n            ).post_multipart_formdata(\n                \"name\", \"path/to/file.ext\", ContentType.MULTIPART_FORM_DATA\n            )\n            self.assertEqual(\n                http_sampler.get_java_class_name(),\n                \"us.abstracta.jmeter.javadsl.http.DslHttpSampler\",\n            )\n        self.assertEqual(\n            str(exp.exception),\n            \"path/to/file.ext\",\n        )\n    def test_http_multipart_body_file_found(self):\n        http_sampler = HttpSampler(\n            \"Echo\",\n            \"https://jsonplaceholder.typicode.com/posts\",\n        ).post_multipart_formdata(\n            \"name\", \"utests/resources/test_data.csv\", ContentType.MULTIPART_FORM_DATA\n        )\n        self.assertEqual(\n            http_sampler.get_java_class_name(),\n            \"us.abstracta.jmeter.javadsl.http.DslHttpSampler\",\n        )\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "utests/test_test_plan.py",
    "content": "\"\"\"unittest module\"\"\"\nimport os\nimport uuid\nfrom unittest import TestCase, main\n\nfrom pymeter.api.config import (\n    SetupThreadGroup,\n    TeardownThreadGroup,\n    TestPlan,\n    ThreadGroupSimple,\n    ThreadGroupWithRampUpAndHold,\n)\nfrom pymeter.api.reporters import HtmlReporter\nfrom pymeter.api.samplers import DummySampler, HttpSampler\n\n\nclass TestTestPlanClass(TestCase):\n    \"\"\"Testing creation of a test plan object\"\"\"\n\n    def test_creation_of_empty_test_plan(self):\n        \"\"\"when creating the python class, it should wrap around the correct java class\"\"\"\n        python_test_plan_object = TestPlan()\n        self.assertEqual(\n            python_test_plan_object.get_java_class_name(),\n            \"us.abstracta.jmeter.javadsl.core.DslTestPlan\",\n        )\n\n    def test_creation_of_test_plan_with_valid_children(self):\n        \"\"\"When children are passed through,\n        result should still be a dsl test plan class\"\"\"\n        tg1 = ThreadGroupWithRampUpAndHold(10, 10, 10)\n        tg2 = ThreadGroupWithRampUpAndHold(10, 10, 10)\n        test_plan = TestPlan(tg1, tg2)\n        self.assertEqual(\n            test_plan.get_java_class_name(),\n            \"us.abstracta.jmeter.javadsl.core.DslTestPlan\",\n        )\n\n    def test_creation_of_test_plan_with_valid_children_out_of_constructor(self):\n        \"\"\"When children are passed through,\n        result should still be a dsl test plan class\"\"\"\n        tg1 = ThreadGroupWithRampUpAndHold(10, 10, 10)\n        tg2 = ThreadGroupWithRampUpAndHold(10, 10, 10)\n        test_plan = TestPlan()\n        test_plan.children(tg1, tg2)\n\n        self.assertEqual(\n            test_plan.get_java_class_name(),\n            \"us.abstracta.jmeter.javadsl.core.DslTestPlan\",\n        )\n\n\n    def test_creation_of_test_plan_with_invalid_children(self):\n        \"\"\"Children must be of type TestPlanChildElement,\n        in any other case, should through `TypeError`\"\"\"\n        with self.assertRaises(TypeError) as exp:\n            test_plan = TestPlan(1, \"aaa\")\n            self.assertEqual(\n                test_plan.get_java_class_name(),\n                \"us.abstracta.jmeter.javadsl.core.DslTestPlan\",\n            )\n        self.assertEqual(\n            str(exp.exception),\n            \"only takes children of type `TestPlanChildElement`\",\n        )\n\n    def test_creation_of_test_plan_with_invalid_children_out_of_constructor(self):\n        \"\"\"Children must be of type TestPlanChildElement,\n        in any other case, should through `TypeError`\"\"\"\n        with self.assertRaises(TypeError) as exp:\n            test_plan = TestPlan()\n            test_plan.children(1,2,\"aa\")\n            self.assertEqual(\n                test_plan.get_java_class_name(),\n                \"us.abstracta.jmeter.javadsl.core.DslTestPlan\",\n            )\n        self.assertEqual(\n            str(exp.exception),\n            \"only takes children of type `TestPlanChildElement`\",\n        )\n\n    def test_run_positive_flow(self):\n        \"\"\"should run test flow with no exceptions\"\"\"\n        http_sampler = HttpSampler(\"Echo\", \"https://postman-echo.com/get?var=1\")\n        tg1 = ThreadGroupWithRampUpAndHold(10, 1, 5, http_sampler)\n        test_plan = TestPlan(tg1)\n        stats = test_plan.run()\n        self.assertEqual(\n            test_plan.get_java_class_name(),\n            \"us.abstracta.jmeter.javadsl.core.DslTestPlan\",\n        )\n        self.assertGreaterEqual(stats.duration_milliseconds, 5000)\n        self.assertLessEqual(\n            stats.sample_time_mean_milliseconds, stats.sample_time_max_milliseconds\n        )\n        self.assertLessEqual(\n            stats.sample_time_min_milliseconds, stats.sample_time_median_milliseconds\n        )\n        self.assertLessEqual(\n            stats.sample_time_median_milliseconds,\n            stats.sample_time_90_percentile_milliseconds,\n        )\n        # self.assertLessEqual(\n        #     stats.sample_time_90_percentile_milliseconds,\n        #     stats.sample_time_95_percentile_milliseconds,\n        # )\n        # self.assertLessEqual(\n        #     stats.sample_time_95_percentile_milliseconds,\n        #     stats.sample_time_99_percentile_milliseconds,\n        # )\n        self.assertLessEqual(\n            stats.sample_time_99_percentile_milliseconds,\n            stats.sample_time_max_milliseconds,\n        )\n\n    def test_run_empty_flow(self):\n        \"\"\"should run test flow with no exceptions\"\"\"\n        tg1 = ThreadGroupWithRampUpAndHold(1, 1, 1)\n        test_plan = TestPlan(tg1)\n        test_plan.run()\n\n    def test_run_validate_order(self):\n        \"\"\"should run test flow with no exceptions\"\"\"\n\n        dummy_sampler_for_setup = DummySampler(\"dummy_setup\", \"hi dummy\")\n        dummy_sampler_for_main = DummySampler(\"dummy_main\", \"hi dummy\")\n        dummy_sampler_for_teardown = DummySampler(\"dummy_teardown\", \"hi dummy\")\n        tg_setup = SetupThreadGroup(dummy_sampler_for_setup)\n        tg_main = ThreadGroupSimple(1, 1, dummy_sampler_for_main)\n        tg_teardown = TeardownThreadGroup(dummy_sampler_for_teardown)\n        output_dir = os.path.join(\"output\", str(uuid.uuid4()))\n        html_reporter = HtmlReporter(output_dir)\n        test_plan = TestPlan(tg_setup, tg_main, tg_teardown, html_reporter)\n        test_plan.run()\n\n        path_to_jtl = os.path.join(output_dir, \"report.jtl\")\n        with open(path_to_jtl, \"r\", encoding=\"utf-8\") as jtl_file:\n            next(jtl_file)\n            lst = [line.split(\",\")[2] for line in jtl_file]\n            self.assertListEqual([\"dummy_setup\", \"dummy_main\", \"dummy_teardown\"], lst)\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "utests/test_thread_group.py",
    "content": "\"\"\"unittest module\"\"\"\nfrom unittest import TestCase, main\n\nfrom pymeter.api.config import (\n    SetupThreadGroup,\n    TeardownThreadGroup,\n    ThreadGroupWithRampUpAndHold,\n)\nfrom pymeter.api.samplers import HttpSampler\n\n\nclass TestThreadGroupClass(TestCase):\n    \"\"\"Testing creation of a thread group object\"\"\"\n\n    def test_creation_of_empty_thread_group(self):\n        \"\"\"when creating the python class, it should wrap around the correct java class\"\"\"\n        python_thread_group_object = ThreadGroupWithRampUpAndHold(1, 1, 1)\n        self.assertEqual(\n            python_thread_group_object.get_java_class_name(),\n            \"us.abstracta.jmeter.javadsl.core.threadgroups.DslDefaultThreadGroup\",\n        )\n\n    def test_creation_of_empty_setup_thread_group(self):\n        \"\"\"when creating the python class, it should wrap around the correct java class\"\"\"\n        python_thread_group_object = SetupThreadGroup()\n        self.assertEqual(\n            python_thread_group_object.get_java_class_name(),\n            \"us.abstracta.jmeter.javadsl.core.threadgroups.DslSetupThreadGroup\",\n        )\n\n    def test_creation_of_empty_teardown_thread_group(self):\n        \"\"\"when creating the python class, it should wrap around the correct java class\"\"\"\n        python_thread_group_object = TeardownThreadGroup()\n        self.assertEqual(\n            python_thread_group_object.get_java_class_name(),\n            \"us.abstracta.jmeter.javadsl.core.threadgroups.DslTeardownThreadGroup\",\n        )\n\n    def test_creation_of_thread_group_with_valid_children(self):\n        \"\"\"When children are passed through,\n        result should still be a dsl test plan class\"\"\"\n        http_sampler = HttpSampler(\"sampler\", \"\")\n        python_thread_group_object = ThreadGroupWithRampUpAndHold(1, 1, 1, http_sampler)\n        self.assertEqual(\n            python_thread_group_object.get_java_class_name(),\n            \"us.abstracta.jmeter.javadsl.core.threadgroups.DslDefaultThreadGroup\",\n        )\n\n    def test_creation_of_thread_group_with_valid_children_out_of_constructor(self):\n        \"\"\"When children are passed through,\n        result should still be a dsl test plan class\"\"\"\n        http_sampler = HttpSampler(\"sampler\", \"\")\n        python_thread_group_object = ThreadGroupWithRampUpAndHold(1, 1, 1)\n        python_thread_group_object.children(http_sampler)\n        self.assertEqual(\n            python_thread_group_object.get_java_class_name(),\n            \"us.abstracta.jmeter.javadsl.core.threadgroups.DslDefaultThreadGroup\",\n        )\n\n    def test_creation_of_thread_group_with_invalid_children_out_of_constructor(self):\n        \"\"\"When children are passed through,\n        result should still be a dsl test plan class\"\"\"\n        python_thread_group_object = ThreadGroupWithRampUpAndHold(1, 1, 1)\n        with self.assertRaises(TypeError) as exp:\n            python_thread_group_object.children(1, 2, 3, \"aa\")\n            self.assertEqual(\n                python_thread_group_object.get_java_class_name(),\n                \"us.abstracta.jmeter.javadsl.core.threadgroups.DslDefaultThreadGroup\",\n            )\n        self.assertEqual(\n            str(exp.exception),\n            \"only takes children of type `ThreadGroupChildElement`\",\n        )\n\n    def test_creation_of_thread_group_with_invalid_children(self):\n        \"\"\"Children must be of type ThreadGroupChildElement,\n        in any other case, should through `TypeError`\"\"\"\n        with self.assertRaises(TypeError) as exp:\n            python_thread_group_object = ThreadGroupWithRampUpAndHold(\n                1, 1, 1, \"http_sampler\"\n            )\n            self.assertEqual(\n                python_thread_group_object.get_java_class_name(),\n                \"us.abstracta.jmeter.javadsl.core.threadgroups.DslDefaultThreadGroup\",\n            )\n        self.assertEqual(\n            str(exp.exception),\n            \"only takes children of type `ThreadGroupChildElement`\",\n        )\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "utests/test_timers.py",
    "content": "\"\"\"unittest module\"\"\"\nfrom unittest import TestCase, main\nfrom pymeter.api import ChildrenAreNotAllowed\nfrom pymeter.api.config import TestPlan, ThreadGroupSimple\nfrom pymeter.api.samplers import HttpSampler\nfrom pymeter.api.timers import UniformRandomTimer, ConstantTimer\n\n\nclass TestTimer(TestCase):\n    \"\"\"Testing creation of a uniform random timer object\"\"\"\n\n    def test_timer_children(self):\n        with self.assertRaises(ChildrenAreNotAllowed) as exp:\n            UniformRandomTimer(2000, 2200).children()\n        self.assertEqual(\n            str(exp.exception),\n            \"Cant append children to a timer\",\n        )\n    def test_uniform_random_timer(self):\n        \"\"\"When the minimal time is 5000 milliseconds,\n        the total test duration is expected to be at least that.\"\"\"\n        timer = UniformRandomTimer(2000, 2200)\n        http_sampler = HttpSampler(\"Echo\", \"https://postman-echo.com/get?var=1\", timer)\n        tg1 = ThreadGroupSimple(1, 1, http_sampler)\n        test_plan = TestPlan(tg1)\n        stats = test_plan.run()\n        self.assertEqual(\n            timer.get_java_class_name(),\n            \"us.abstracta.jmeter.javadsl.core.timers.DslUniformRandomTimer\",\n        )\n        self.assertEqual(\n            stats.get_java_class_name(),\n            \"us.abstracta.jmeter.javadsl.core.TestPlanStats\",\n        )\n        self.assertGreaterEqual(stats.duration_milliseconds, 2000)\n\n    def test_constant_timer(self):\n        \"\"\"When the minimal time is 5000 milliseconds,\n        the total test duration is expected to be at least that.\"\"\"\n        timer = ConstantTimer(2000)\n        http_sampler = HttpSampler(\"Echo\", \"https://postman-echo.com/get?var=1\", timer)\n        tg1 = ThreadGroupSimple(1, 1, http_sampler)\n        test_plan = TestPlan(tg1)\n        stats = test_plan.run()\n        self.assertEqual(\n            timer.get_java_class_name(),\n            \"us.abstracta.jmeter.javadsl.core.timers.DslConstantTimer\",\n        )\n        self.assertEqual(\n            stats.get_java_class_name(),\n            \"us.abstracta.jmeter.javadsl.core.TestPlanStats\",\n        )\n        self.assertGreaterEqual(stats.duration_milliseconds, 2000)\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "utests/test_vars.py",
    "content": "\"\"\"unittest module\"\"\"\nimport os\nimport uuid\nfrom unittest import TestCase, main\nfrom collections import Counter\nfrom pymeter.api import ChildrenAreNotAllowed\nfrom pymeter.api.config import (\n    TestPlan,\n    ThreadGroupSimple,\n    Vars,\n)\nfrom pymeter.api.reporters import HtmlReporter\nfrom pymeter.api.samplers import HttpSampler\n\n\nclass TestVars(TestCase):\n    \"\"\"Testing vars\"\"\"\n\n    def test_vars_children(self):\n        with self.assertRaises(ChildrenAreNotAllowed) as exp:\n            Vars().children()\n        self.assertEqual(\n            str(exp.exception),\n            \"Cant append children to vars\",\n        )\n\n    def test_vars_set_from_constructor(self):\n\n        output_dir = os.path.join(\"output\", str(uuid.uuid4()))\n        html_reporter = HtmlReporter(output_dir)\n        variables = Vars(my_id=\"value1\")\n        http_sampler1 = HttpSampler(\n            \"Echo_${my_id}\", \"https://postman-echo.com/get?var=${my_id}\"\n        )\n        thread_group = ThreadGroupSimple(2, 1)\n        thread_group.children(http_sampler1)\n\n        test_plan = TestPlan(thread_group, html_reporter, variables)\n        test_plan.run()\n\n        self.assertTrue(os.path.exists(output_dir))\n        path_to_jtl = os.path.join(output_dir, \"report.jtl\")\n        with open(path_to_jtl, \"r\", encoding=\"utf-8\") as jtl_file:\n            next(jtl_file)\n            all_samplers = [line.split(\",\")[2] for line in jtl_file]\n            cntr = Counter(all_samplers)\n            self.assertDictEqual({\"Echo_value1\": 2}, cntr)\n\n    def test_vars_set_from_set_method(self):\n\n        output_dir = os.path.join(\"output\", str(uuid.uuid4()))\n        html_reporter = HtmlReporter(output_dir)\n        variables = Vars()\n        variables.set(\"my_id\", \"value1\")\n        http_sampler1 = HttpSampler(\n            \"Echo_${my_id}\", \"https://postman-echo.com/get?var=${my_id}\"\n        )\n        thread_group = ThreadGroupSimple(2, 1)\n        thread_group.children(http_sampler1)\n\n        test_plan = TestPlan(thread_group, html_reporter, variables)\n        test_plan.run()\n\n        self.assertTrue(os.path.exists(output_dir))\n        path_to_jtl = os.path.join(output_dir, \"report.jtl\")\n        with open(path_to_jtl, \"r\", encoding=\"utf-8\") as jtl_file:\n            next(jtl_file)\n            all_samplers = [line.split(\",\")[2] for line in jtl_file]\n            cntr = Counter(all_samplers)\n            self.assertDictEqual({\"Echo_value1\": 2}, cntr)\n\n    def test_vars_value_is_int(self):\n\n        output_dir = os.path.join(\"output\", str(uuid.uuid4()))\n        html_reporter = HtmlReporter(output_dir)\n        variables = Vars()\n        variables.set(\"my_id\", 1)\n        http_sampler1 = HttpSampler(\n            \"Echo_${my_id}\", \"https://postman-echo.com/get?var=${my_id}\"\n        )\n        thread_group = ThreadGroupSimple(2, 1)\n        thread_group.children(http_sampler1)\n\n        test_plan = TestPlan(thread_group, html_reporter, variables)\n        test_plan.run()\n\n        self.assertTrue(os.path.exists(output_dir))\n        path_to_jtl = os.path.join(output_dir, \"report.jtl\")\n        with open(path_to_jtl, \"r\", encoding=\"utf-8\") as jtl_file:\n            next(jtl_file)\n            all_samplers = [line.split(\",\")[2] for line in jtl_file]\n            cntr = Counter(all_samplers)\n            self.assertDictEqual({\"Echo_1\": 2}, cntr)\n\n    def test_vars_value_is_stringable_class(self):\n        class C:\n            def __repr__(self) -> str:\n                return \"hello\"\n\n        output_dir = os.path.join(\"output\", str(uuid.uuid4()))\n        html_reporter = HtmlReporter(output_dir)\n        variables = Vars()\n        variables.set(\"my_id\", C())\n        http_sampler1 = HttpSampler(\n            \"Echo_${my_id}\", \"https://postman-echo.com/get?var=${my_id}\"\n        )\n        thread_group = ThreadGroupSimple(2, 1)\n        thread_group.children(http_sampler1)\n\n        test_plan = TestPlan(thread_group, html_reporter, variables)\n        test_plan.run()\n\n        self.assertTrue(os.path.exists(output_dir))\n        path_to_jtl = os.path.join(output_dir, \"report.jtl\")\n        with open(path_to_jtl, \"r\", encoding=\"utf-8\") as jtl_file:\n            next(jtl_file)\n            all_samplers = [line.split(\",\")[2] for line in jtl_file]\n            cntr = Counter(all_samplers)\n            self.assertDictEqual({\"Echo_hello\": 2}, cntr)\n\n    def test_vars_illegal_key_type(self):\n\n        with self.assertRaises(TypeError) as exp:\n            variables = Vars()\n            variables.set(1, \"value1\")\n\n        self.assertEqual(str(exp.exception), \"Keys must be strings\")\n\n\nif __name__ == \"__main__\":\n    main()\n"
  }
]