Purpose
cQube solution architecture document:cQube | Design Document (Nov 2022)
In this document focus is on evolving Design Specs, which can be used by the development team.
...
This document is organized by topics. Various illustrations/models used in this document are present in this document: cQube | Design Specs | Models - v24Nov2022
TopicsData processing pipeline alternatives
...
spec.dimension
spec.dimension_track
spec.event
spec.event_track
spec.dataset
spec.dataset_track
spec.transformer
spec.transformer_track
spec.pipeline
spec.pipeline_track
spec.schedule
spec.schedule_track
...
Ingestion pipeline
...
The Developer & QC workflow activity is described in the above diagram from how the task is identified & assigned till it merges to the respective branch in the Developer workflow. Once the code is merged, QC will then test their scripts and execute the test cases and produce the test result.
DevOps
Installation Process
Following technologies will be used to implement cQube as a one step installation.
...
A workflow action will get triggered where it builds the docker image out of the dockerfile >> login to the docker hub >> pushed the latest image to the docker hub repository >> connect to the ec2 server >> pulls the latest images from the dockerhub >> deploys into the server.
Developers raise a pull request
On the event of pull request github actions workflow triggers Continuous Integration where it will build and test the code.
Once the build is successful, Code Reviewer checks the code and merge it to the repository
In the event of a merge, github actions trigger continuous Deployment where it will deploy the code to the server.
Once the code is merged to dev the code will be merged to QA which again follows the same above process followed by demo Environment.
...
Java(8+), IDE, Maven dependencies in pom.xml
Open Eclipse
File > New > Maven project > Click on create a simple project > Next > Group Id: com.karate.com>Artifactid: karate>Finish
Click on pom.xml
Add dependencies within the project
Add Maven dependencies in pom.xml (https://mvnrepository.com/artifact/com.intuit.karate)
Karate core - compiling the feature files
Karate Apache - Interface between API to server
Karate JUnit4 - logs and reports generation
...
KPI Test Approach
What is KPI?
Key performance indicators (KPIs) in software testing are the calculated data that help measure the performance and effectiveness of testing. It gives an idea of whether the software testing is progressing in the right direction and whether it will be done on time.
KPIs are the key targets you should track to make the most impact on your strategic business outcomes. KPIs support your strategy and help your teams focus on what’s important. An example of a key performance indicator is "targeted new customers per
Metrics measure the success of everyday business activities that support your KPIs. While they impact your outcomes, they’re not the most critical measures. Some examples include "student attendance" and "teacher
What is the Difference Between Software Testing Metrics and KPIs?
Software testing metrics are the data used to track and monitor the various operations performed by the testers. Whereas organizations and testers use key performance indicators (KPIs) to determine testing effectiveness and the time and cost required to complete the testing.
Prerequisites needed for KPI Testing
...
When is the Software Testing KPIs not useful?
Although measuring the effectiveness of a process is essential to know if you are doing it right, measuring the testing process via quality KPIs will not make sense in a scenario where:
If your product has just started with Testing: If you are going to launch your product for the first time and testing has just started, there won’t be much to measure. This time will be crucial to put a testing process in place rather than measuring the effectiveness of the testing process.
If you are not planning to have a long testing cycle: If you are making a product that would not be changing for a long time after the launch and testing will be a one-time process, measurement of the effectiveness of the process would not be beneficial as you won’t have any new testing cycles to improve upon.
If you are on a restricted budget: Just like doing any activity, measuring testing KPIs also takes time and effort and, consequently, costs. So rather than measuring the KPIs, applying a cost-effective testing process should be the primary focus when the budget for testing is restricted.
KPI Testing Approach
...
How to perform Metrics Test:
...
We are going to test each API with the users of 100, 500, 1000, 3000, 5000, 10000, 20000, 30000, 40000 and 50000
With a ramp-up period of 1 sec, the average time should not be > 3000 milliseconds(3 sec)
Final Report will be stored in csv file
jmeter load testing test cases
https://docs.google.com/spreadsheets/d/1od4uaW-65DTWSgbjrS1sW5Ll3i3EczVU4GKLAwW7C6g/edit?usp=sharing
JMeter scripts:
Start JMeter. Open the JMeter window in the terminal by clicking on cd Downloads/apache-jmeter-5.5/bin/jmeter.sh
Rename the Test Plan. Change the name of the test plan node to Sample Test in the Name text box
Add Thread Group.
Add HTTP request→provide the API url , path, port number, and body
Add Listener - result tree , graph, view table report
Run the Test Plan.
View results in,summary report, and View result tree listeners
Add assertions-->Response code assertion
View the Output in CSV
...
In this case dataset is an input doing aggregation with filters and storing it into dataset table
NOTE: all 5 transformers will be written for Two different UPSERT operations like explained below.So we will be having 10 Transformers.
Upsert By Replace Operation:
...