Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
wdio-docker-service
Advanced tools
WebdriverIO service to start and stop docker container (for Selenium and more)
This service is intended for use with WebdriverIO and it helps run functional/integration tests against/using containerized applications. It uses popular Docker service (installed separately) to run containers.
Ideally your tests would run in some variety of CI/CD pipeline where often there are no "real" browsers and other resources your application depends on. With advent of Docker practically all necessary application dependencies can be containerized. With this service you may run your application container or a docker-selenium in your CI and in complete isolation (assuming CI can have Docker installed as a dependency). Same may apply to local development if your application needs to have a level of isolation from your main OS.
Service will run an existing docker image and once its ready, will initiate WebdriverIO tests that should run against your containerized application.
Run:
npm install wdio-docker-service --save-dev
Instructions on how to install WebdriverIO can be found here.
By default, Google Chrome, Firefox and PhantomJS are available when installed on the host system.
In order to use the service you need to add docker
to your service array:
// wdio.conf.js
exports.config = {
// ...
services: ['docker'],
// ...
};
Various options required to run docker container
Type: Object
Default: { options: { rm: true } }
Example:
dockerOptions: {
image: 'selenium/standalone-chrome',
healthCheck: 'http://localhost:4444',
options: {
p: ['4444:4444'],
shmSize: '2g'
}
}
Docker container name tag. Could be local or from Docker HUB.
Type: String
Required: true
Configuration which checks your containers' readiness before initiating tests. Normally this would be a localhost url. If healthCheck is not configured, Webdriver will start running tests immediately after Docker container starts, which maybe too early considering that it takes time for web service to start inside a Docker container.
Type: String|Object
Options for Object use:
Example 1 (String): healthCheck: 'http://localhost:4444'
Example 2 (Object):
healthCheck: {
url: 'http://localhost:4444',
maxRetries: 3,
inspectInterval: 1000,
startDelay: 2000
}
Map of options used by docker run
command. For more details on run
command click here.
Any single-letter option will be converted to -[option]
(i.e. d: true
-> -d
).
Any option of two-character or more will
be converted to --[option]
(i.e. rm: true
-> --rm
).
For options that may be used more than once
(i.e. -e
,-add-host
, --expose
, etc.), please use array notation (i.e. e: ["NODE_ENV=development", "FOO=bar"]
).
Type: Object
Example:
options: {
e: ['NODE_ENV=development', 'PROXY=http://myproxy:80']
p: ['4444:4444', '5900:5900'],
shmSize: '2g'
}
Any arguments you may want to pass into container. Corresponds to [ARG...]
in Docker run CLI.
Type: String
Any command you may want to pass into container. Corresponds to [COMMAND]
in Docker run CLI.
Type: String
A callback method which is called when Docker application is ready. Readiness is determined by ability to ping healthCheck
url.
Type: Function
Path to where logs from docker container should be stored
Type: String
Please visit our Wiki for more details.
FAQs
WebdriverIO service to start and stop docker container (for Selenium and more)
The npm package wdio-docker-service receives a total of 8,898 weekly downloads. As such, wdio-docker-service popularity was classified as popular.
We found that wdio-docker-service demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.