All Projects → Pernat1y → vm-automation

Pernat1y / vm-automation

Licence: MIT license
VirtualBox automation using Python

Programming Languages

python
139335 projects - #7 most used programming language
Batchfile
5799 projects
shell
77523 projects

Projects that are alternatives of or similar to vm-automation

Virtualbox Python
Complete implementation of VirtualBox's COM API with a Pythonic interface.
Stars: ✭ 277 (+27600%)
Mutual labels:  vm, virtualbox, virtual-machine
karate-runner
VSCode Extension for Karate
Stars: ✭ 23 (+2200%)
Mutual labels:  test-automation, testing-tools, automation-testing
Box
[DEPRECATED] Official, pre-packaged Vagrant Box
Stars: ✭ 197 (+19600%)
Mutual labels:  vm, virtualbox, virtual-machine
js5005
js5005 is a virtual CPU with every logic gate simulated. A pretty interface, a built in assembler, display, and 256 bytes of RAM to boot. It's the better i4004.
Stars: ✭ 14 (+1300%)
Mutual labels:  vm, virtualbox, virtual-machine
Macos Virtualbox Vm
Instructions and script to help you create a VirtualBox VM running macOS.
Stars: ✭ 2,385 (+238400%)
Mutual labels:  vm, virtualbox, virtual-machine
karate
Test Automation Made Simple
Stars: ✭ 6,384 (+638300%)
Mutual labels:  test-automation, testing-tools
jest-gql
✅🚀GraphQL based tests for Jest and Apollo
Stars: ✭ 33 (+3200%)
Mutual labels:  test-automation, testing-tools
acquia-cloud-vm
VirtualBox/Vagrant-based VM to closely match Acquia Cloud environment.
Stars: ✭ 20 (+1900%)
Mutual labels:  vm, virtualbox
toradocu
Toradocu - automated generation of test oracles from Javadoc documentation
Stars: ✭ 39 (+3800%)
Mutual labels:  test-automation, testing-tools
qt monkey
Tool for testing Qt based applications
Stars: ✭ 39 (+3800%)
Mutual labels:  test-automation, testing-tools
butterfly
Butterfly connects Virtual Machines and control their traffic flow
Stars: ✭ 48 (+4700%)
Mutual labels:  vm, virtual-machine
kcs
Scripting in C with JIT(x64)/VM.
Stars: ✭ 25 (+2400%)
Mutual labels:  vm, virtual-machine
c8c
The chip8 compiler, assembler, and virtual machine
Stars: ✭ 110 (+10900%)
Mutual labels:  vm, virtual-machine
main
Mocks Server monorepo
Stars: ✭ 109 (+10800%)
Mutual labels:  test-automation, testing-tools
Animach
Scheme语言实现和运行时环境 / A Scheme runtime & implementation
Stars: ✭ 45 (+4400%)
Mutual labels:  vm, virtual-machine
fast-test
fast-test是基于Java的自动化测试工具集合,包含自动测试平台(后端Vue),自动测试框架,可以帮助测试人员快速构建各类测试工具和自动化测试框架。请点星支持!
Stars: ✭ 112 (+11100%)
Mutual labels:  test-automation, testing-tools
SBTCVM-Gen2-9
SBTCVM is a virtual machine implementation of a balanced ternary (base 3) computer. Features several compiled languages for ternary software development.
Stars: ✭ 32 (+3100%)
Mutual labels:  vm, virtual-machine
Telegraf-Test
Telegraf Test - Simple Test ToolKit of Telegram Bots
Stars: ✭ 22 (+2100%)
Mutual labels:  test-automation, testing-tools
AutoMeter-API
AutoMeter-API是一款针对分布式服务,微服务API功能和性能一体的自动化测试平台,一站式解决应用,服务,API,环境管理,用例,条件,测试场景,计划,测试报告,功能/性能测试兼容支持的一体化工作平台
Stars: ✭ 105 (+10400%)
Mutual labels:  test-automation, testing-tools
extensiveautomation-server
Extensive Automation server
Stars: ✭ 19 (+1800%)
Mutual labels:  test-automation, testing-tools

Content

About

Python script that can be used to automate dynamic testing of binaries/scripts/documents on VMs (currently only VirtualBox is supported). Based on VBoxManage command-line interface and does not require VirtualBox SDK.

Both Windows and Linux are tested as host OS. May work on other platforms, supported by VirtualBox and Python.

Downloads

Latest stable version and Windows binaries are available in Releases.

Usage:

Essential commands:

python demo_cli.py \
    file.exe \
    --vms windows10 windows8 windows7 \
    --snapshots firefox chrome ie

All options (AKA --help):

Optional arguments:
  -h, --help            show this help message and exit

Required options:
  file                  Path to file
  --vms [VMS ...], -v [VMS ...]
                        Space-separated list of VMs to use
  --snapshots [SNAPSHOTS ...], -s [SNAPSHOTS ...]
                        Space-separated list of snapshots to use

Main options:
  --vboxmanage [VBOXMANAGE]
                        Path to vboxmanage binary (default: vboxmanage)
  --check_version       Check for latest VirtualBox version online (default: False)
  --timeout [TIMEOUT]   Timeout in seconds for both commands and VM (default: 60)
  --delay [DELAY]       Delay in seconds before/after starting VMs (default: 7)
  --threads [{0,1,2,3,4,5,6,7,8}]
                        Number of concurrent threads to run (0=number of VMs, default: 2)
  --verbosity [{debug,info,error,off}]
                        Log verbosity level (default: info)
  --debug               Print all messages. Alias for "--verbosity debug" (default: False)
  --log [LOG]           Path to log file (default: None) (console)
  --report              Generate html report (default: False)
  --record              Record video of guest' screen (default: False)
  --pcap                Enable recording of VM's traffic (default: False)
  --memdump             Dump memory VM (default: False)
  --no_time_sync        Disable host-guest time sync for VM (default: False)

VM options:
  --ui [{1,0,gui,headless}]
                        Start VMs in GUI or headless mode (default: gui)
  --login [LOGIN], --user [LOGIN]
                        Login for guest OS (default: user)
  --password [PASSWORD]
                        Password for guest OS (default: 12345678)
  --remote_folder [{desktop,downloads,documents,temp}]
                        Destination folder in guest OS to place file. (default: desktop)
  --open_with [OPEN_WITH]
                        Absolute path to app, which will open main file (default: %windir%\Explorer.exe)
  --network [{on,off}]  State of network adapter of guest OS (default: None)
  --resolution [RESOLUTION]
                        Screen resolution for guest OS. Can be set to "random" (default: None)
  --mac [MAC]           Set MAC address for guest OS. Can be set to "random" (default: None)
  --get_file [GET_FILE]
                        Get specific file from guest OS before stopping VM (default: None)
  --pre [PRE]           Script to run before main file (default: None)
  --post [POST]         Script to run after main file (default: None)

Host configuration

  • Both Windows and Linux are tested as host OS. May work on other platforms, supported by VirtualBox.
  • You need VirtualBox (the newer the better). Proprietary Oracle VM VirtualBox Extension Pack is not required.
  • It is recommended to have folder with 'vboxmanage' binary in the environment variables.
  • You need a recent version of Python (3.7+).

Guest configuration

  • You must have Windows as the guest OS with auto login configured (or have a snapshot with a user logged in).
  • You must have VirtualBox guest additions installed.
  • It is strongly recommended to have live snapshots to restore to (otherwise it will be much slower).
  • VM disk encryption is not supported (VBoxManage limitation).

TODO:

  • Small improvements.
  • Code optimization and fixes.
  • Better tests coverage.

Example videos

  • Windows host (version 0.9.2):

  • Linux host (version 0.7.3):

Useful links

VirtualBox Hardened VM detection mitigation loader - VBoxHardenedLoader

Changelog

Version 0.11:

  • Added '--file_args' option to pass an argument to the main file/executable.
  • '--uac_parent' option renamed to '--open_with' as it may be used with any type of files, not only the executables.
  • Updated vm_record() - added new options and updated defaults.
  • Small improvements in html report.

For complete changelog see CHANGELOG.md

Donations

See https://github.com/Pernat1y/Pernat1y

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].