We are using the Protractor testing framework in order to test our Gentics Mesh AngularJS Admin UI webapp. In this blogpost I will explain our setup and how we use docker to run the protractor tests.
Installation: npm install -g protractor
| RewriteEngine on | |
| RewriteBase / | |
| RewriteCond %{REQUEST_FILENAME} !-f | |
| RewriteCond %{REQUEST_FILENAME} !-d | |
| RewriteRule ^(.*)$ index.php [QSA,L] |
| extern "C" { | |
| #include "user_interface.h" | |
| } | |
| // Change MAC | |
| byte *mac = (byte*)malloc(6); | |
| WiFi.macAddress(mac); | |
| mac[0] = 0x20; | |
| mac[1] = 0x11; |
| $ ./test.sh | |
| mesh uses an image, skipping | |
| selenium uses an image, skipping | |
| Building tester | |
| Step 1 : FROM jotschi/protractor | |
| ---> ffd0a8bd68a6 | |
| Step 2 : RUN mkdir -p /app | |
| ---> Using cache | |
| ---> b22bae66ffa7 | |
| Step 3 : COPY *.js /app/ |
| FROM jotschi/protractor | |
| RUN mkdir -p /app | |
| COPY *.js /app/ |
We are using the Protractor testing framework in order to test our Gentics Mesh AngularJS Admin UI webapp. In this blogpost I will explain our setup and how we use docker to run the protractor tests.
Installation: npm install -g protractor
| #!/bin/bash | |
| set -o nounset | |
| set -o errexit | |
| BUILDDIR=/tmp/eclipse-docker | |
| DOCKERHOST=tcp://cetus.office:2375 | |
| mkdir -p $BUILDDIR | |
| cd $BUILDDIR |
| @Test | |
| public void testCreatePerformance() { | |
| // Warmup the system caches etc | |
| warmup(); | |
| // Start the stopwatch | |
| mark(); | |
| // Invoke the create node action 1000 times | |
| for(int i = 0; i < 1000; i++) { | |
| createNode(); | |
| } |
| //https://dweet.io/dweet/for/aboard-curve?a=green&aMode=fade&b=yellow&bMode=fade&c=red&cMode=fade&d=red&dMode=fade | |
| #include <ESP8266WiFi.h> | |
| #include <ESP8266HTTPClient.h> | |
| const char* ssid = "sid"; | |
| const char* password = "pw"; | |
| const int ShiftPWM_latchPin=12; | |
| const int ShiftPWM_clockPin=13; |
= Continuous Delivery Changelog
I have recently changed the Gentics Mesh release process from regular releases to a continous delivery release process. One of the questions that directly came up was how to manage a public changelog in continuous delivery workflow?
Previously (regular sequential releases) I would write the changelog entry upfront and since I knew what release version would be expected i could just refer to that version. With CD this changes. I can no longer refer to a specific version since i'm doing CD without actually knowing the version upfront.
I know that I could just fetch the SCM log and generate a changelog using that information but I don't like to use SCM messages for a public (enduser friendly) changelog. A changelog that just consists of SCM messages is way to noisy. Unfortunately it seems that all the open source changelog plugin utlize the git log to build a changelog.
For Gentics CMS I already wrote my own [maven changelog plugin](https://github.com/gentics/maven-changelog-
Functional Performance Tests For Java
Since there seems to be multiple definitions of functional tests here is mine:
A functional test is a test which will test the exposed application features (e.g.: Internal or REST API's ) with less or no mocks compared to unit tests. Functional tests may also interact with databases or other external services.
For Gentics Mesh we already have a lot of functional tests but no performance tests. It is therefore hard to tell whether a change or even a dependency update actually improves or degrades the service performance.
The Gentics Mesh functional tests are written using JUnit. Please keep in mind that a JUnit test must not necessarily be a unit test. In case of mesh we have a lot of functional tests which startup an embedded mesh instance and invoke regular REST requests via HTTP.