Skip to content

Releases: rahul-verma/arjuna

Arjuna 1.0.17

22 Jun 17:30
Compare
Choose a tag to compare
Arjuna 1.0.17 Pre-release
Pre-release

A major update for HTTP Automation. Adds many more facilities and HTTP Facade class.

Http Automation
- Http Facade class added. Sessions are created using this class. Also supports quick sender methods with temp session creation.
- Support for basic and digest authentication.
- The session module is split into multiple modules for better maintenance as the code became large for single file.
- Added support for HEAD, PATCH, OPTIONS methods.
- Request headers property added for inquiry.
- is_redirect property added to HttpResponse
- Header assertions added.
- Support for pretty URL format for query params
- Support for query_params as a dict, for use when names are not valid python names.
- Added new named exceptions: HttpSendError, HttpConnectError, HttpRequestCreationError
- content as an alias for text for request and response objects.
- Redirections: max_redirects at session level (default 30), allow_redirects at individual send request level (default is True).
- Cookies can be added/overriden at request level.
- HttpResponse.cookies property added.
- Provision for request timeout.
- Support for setting proxy at session level.
- Support for utf8, bytes, file and multipart content type.
Configuration
- Added ArjunaOption.DATA_FILE_DIR to contain files that are supposed to be used as file data.
- create-project command creates project/data/file directory with a placeholder.
Data References
- Moved IndexedDataReference and ContextualDataReference classes to TPI.
NodeLocator
- Now available as Xml.node_locator

Arjuna 1.0.16

15 Jun 16:45
Compare
Choose a tag to compare
Arjuna 1.0.16 Pre-release
Pre-release
  • Fixed run-session/run-stage/run-group commands as per changes in YAML.
  • Parallel execution uses multiprocessing instead of multithreading now.
  • Different Reference configs can be provided for different groups.
  • GuiMultiElement now inherits from IterableAsserterMixin to support size-related assertions.
  • Internal logging clean-up.
  • Network recording support for Firefox
  • Contextual Logging
    • Improved logic to allow setting contexts in a reference config.
    • A logging call marked with contexts does not get logged by default unless it has an intersection of atleast one context with ArjunaOption.LOG_ALLOWED_CONTEXTS in the reference config for the run.
    • Introduced 3 built-in contexts: report, resource, request.
    • More contextual logs will be introduced.

Arjuna 1.0.14

13 Jun 16:21
Compare
Choose a tag to compare
Arjuna 1.0.14 Pre-release
Pre-release

Network capture support for Web UI testing, heavily improved data references and introduction of configuration stages are the primary themes in this release:

Network packet capture in Web UI tests
- BrowserMob Proxy integration
- Reference Config level options:
- ArjunaOption.BROWSER_NETWORK_RECORDER_ENABLED enables network recording. Default is False.
- Any config level options:
- ArjunaOption.BROWSER_NETWORK_RECORDER_AUTOMATIC instructs to GuiApp to start recording after browser is launched. Also, each GuiPage sets current title to its name. Default is False.
- The packets are captured and shown in HTML Reports just like Web service network packets.
Reporting
- Reference Config level options:
- ArjunaOption.REPORT_NETWORK_ALWAYS - Network info will be included even for passed tests.
- ArjunaOption.REPORT_SCREENSHOTS_ALWAYS - Screenshots will be included even for passed tests.
- Any config level options:
- ArjunaOption.REPORT_NETWORK_FILTER - Only requests with responses with content with html/json/xml are included in report.
Configuration
- Configuration stages defined as Default/Reference/CLI/Coded.
- DisallowedArjunaOptionError exception is raised if one attempts to set a config option at a level where it is not allowed.
Network Recorder Protocol
- request spaces can contain network_recorder attribute.
- A Network Recorder should have record/register methods. For Web UI automation, it can be set to <app_object>.network_recorder.
- The recorded traffic is automatically registered in case of errors in fixture/test.
- A record call also registers existing recording if any.
Data References
- Support bucket query which is equivalent to Arjuna.get_data_ref(bucket_name)
- Support for iterality in Contextual and Indexed References.
- Support for context/index based value retrieval like a dict/list syntax.
- Added documentation for these feature enhancements.
- Added example/test code.
CIStringDict
- Retains case-insensitive inquiries
- When all keys or items or raw object is retrieved, original casing of keys is retained.
DataRecord
- .named_values retains original casing of keys.
HTML Reporting
- JS/HTML now in res files.
- Collapsible redirected network packets based on Stefan's sample code submission.

Arjuna 1.0.13

04 Jun 17:38
Compare
Choose a tag to compare
Arjuna 1.0.13 Pre-release
Pre-release

This build adds YAML based Data References support and refined Yaml objects, along with other refinement fixes and improvement docs.

Data References
- Added support for Yaml based contextual as well as indexed data references.
Yaml
- Implemented iter logic in YamlList and YamlDict
- YamlDict and YamlList support == operator.
- Simplified Yaml API as aligned with other format parsers for consistency.
HTML Reporting
- Log height changed to 500px.
- Modal window dimensions chnaged to smaller.
Docs
- Added doc comments for yaml module as it is in TPI.
- Added docs for indexed data references. Improved doc for contextual data references.
- Added doc for YAML in text parsing.

  • @track within Arjuna uses trace level for most classes.

Arjuna 1.0.12

03 Jun 17:25
Compare
Choose a tag to compare
Arjuna 1.0.12 Pre-release
Pre-release

Major improvements in Data Entity, more facilities in Json and Yaml parsing, simplified project structure are some of the themes of this release. Following are finer details:

  • Data Generation and Data Entities
    • Added generator, processor, composite and composer classes.
    • data_entity supports setting an attr to a function, generator or composite. These are called at the time of object initialization with facility for dynamic data generation every time.
    • A single generated data object is processed using the processor provided in generator.
    • Multiple generated data objects can be clubbed into with composite and composer constructs.
  • Doc Comments
    • data_entity
    • generator, processor, composite and composer classes
  • Docs added:
    • Random class and Data Entity.
    • Usage of generator, processor, composite and composer classes
  • Json
    • Added JsonSchemaBuilder class
    • Added more methods to JsonSchema class
    • JsonList supports JsonPath based find and findall.
  • Repackaging
    • json, html and xml modules moved to tpi.parser.
    • data modules moved to tpi.data
  • Arjex - New Examples/Tests
    • Data Entity
    • JsonPath-RW
    • JsonPath-RW-EXT
    • Genson-Schema-Creation
    • Genson-Schema-Extraction
  • Simplified Project Structure
    • Cross-project resource importing
      • Existing way unncessarily complex for beginners and too simplistic for advanced users.
      • By default, all resource creators present in lib/resource.py are imported.
      • For advanced usage, change it from module to package and add importable names to all in init.py. Check arjex project for example.
    • Removed Row Data Reference for Excel. Column ref is the default. /data/reference/excel contains such files. Doc and example code updated
    • L10n files go directly in l10n directory.
  • Data References
    • Added support for Indexed Data References.
    • Enhanced Query support allows for a blank query, thereby returning a DataRecord object for more involved coding.
    • The string representing of such Data Record Shows data reference name and context/index used.
  • Yaml module added to TPI's parser package.
  • FIX:
    • XmlNode's text and texts methods. lxml returned empty text for some HTML structures. Arjuna now uses .texts for both. Also changed "//text()" to ".//text()" in texts call.

Arjuna 1.0.11

29 May 16:23
Compare
Choose a tag to compare
  • Added more parsing and building capabilities to Xml and Html objects.
    • Cleaned up GuiSource code to use these capabilities.
  • Added missing doc comments for Xml and Html classes.
  • Doc comments for all Json classes.
  • Added IterableAsserterMixin, separating commong assertions in JsonDict and JsonList classes.
  • Added docs:
    • HTTP Automation
    • Json Parsing
    • XML Parsing
    • HTML Parsing

Arjuna 1.0.10

27 May 12:14
Compare
Choose a tag to compare

Minor, but important update

  • User defined test attrs based selection fixed.
  • Minor changes in OAuth interface.
  • Doc comments added for OAuth classes.

Arjuna 1.0.8

27 May 10:44
Compare
Choose a tag to compare

Only one fix: conftest.py is lenient w.r.t. missing project structure for resource modules.

Arjuna 1.0.7

27 May 09:02
Compare
Choose a tag to compare

Minor fixes and feature enhancements:

  • Doc Comments added:
    • HttpSession, HttpRequest, HttpResponse
  • Http Auto
    • Added cusstom headers support for get, delete and put. Post support already existed.
  • Data Entity
    • Allows namedtuple style of multiple attr names in a single string.
    • Clean string representation.
  • Module based test selection
    • Allows name with .py in -im, -em, as well as -ir/-er if rule string target is module.
  • Removed last_request from HttpResponse. .request is the last request.

Arjuna 1.0.5

26 May 17:47
Compare
Choose a tag to compare

Goal for Arjuna 1.1.0 is to provide Http layer automation support. This build provides the foundational building blocks for the same along with significantly improved HTML reporting and fixes.

For Http Layer automation, this build should be considered a beta quality build. W.r.t. Arjuna 1.0, it is an improved production build for the features it supports.

  • Auto-generated conftest.py now does a basic if ModuleNotFoundError was for corresponding resource module.
  • HTTP Level Test Automation (Work In Progress, Alpha Quality)
    • Added basic support for HttpSession along with HttpRequest and HttpResponse classes.
    • Added support for OAuth2 using Implicit Grant and Client Grant.
  • JSON
    • Added JsonDict and JsonList support
    • Support for JsonDict and JsonList assertions of different types.
    • Support for auto-extraction of schema from a json string or object.
    • Support for basic schema validation of Json.
  • New Named exceptions:
    • HttpUnexpectedStatusCode
  • Data Entity
    • Is not an alias of namedtuple
    • DataEntity is an alias of Arjuna's data_entity call.
    • Allows setting defaults for entity attributes.
  • Test Report Meta Data
    • Introduced Test-wise report meta data container.
    • Arjuna.get_report_metadata() can used anywhere in the project to access it.
    • In test functions and @for_test resource functions, it can also be got using request.report_metadata
    • Added an auto-fixture to add and clean entry for current test.
    • Currently contains images and network packets.
  • HTML Reporting
    • Screenshots and Images:
      • Take screenshshot adds the images to current test container.
      • HTML report can include all screenshots.
      • Rather than opening an image in a new window, it is opened in a modal window in the same tab.
      • The modal window uses the same base64 embedded image.
    • Network Traffic
      • Arjuna Http request sending logic adds network packets to current test container.
      • In case of redirects, all directs are captured.
      • HTML report can includes all these packets.
      • Method and URL are shown as a clickable button.
      • Request/Response detail is shown in a modal window.
  • Logging
    • Added Trace level along with log_trace method.
    • Newlines are removed from message.
  • Track
    • Long args are truncated to size 100.
    • Long return vals are truncated to size 200.
    • Allows trace level.

Fixes:

  • Fix in create-project: lib/fixture -> lib/resource
  • Cleanup for extraneous Logging errors caused by pytest in stderr entry in reports.
  • Extraneous log message cleanup.
  • Windows 10 logging handle related exception happens unexpectedly. Log message will not be written in such a case. Execution continues.
  • Dispatcher issue in MultiElement when created using filters.