Part 1
Part 2
The automated arrangement, coordination, and management of complex computer systems - Wikipedia
$ vagrant init centos/7
$ vagrant up
$ vagrant ssh
$ vagrant destroyVagrant.configure("2") do |config|
config.vm.define "vagrant-windows-2012"
config.vm.box = "windows_2012"
config.vm.communicator = "winrm"$ vagrant up --provider awsconfig.vm.provider :aws do |aws, override|
aws.access_key_id = "YOUR KEY"
aws.secret_access_key = "YOUR SECRET KEY"
aws.keypair_name = "KEYPAIR NAME"
override.ssh.private_key_path = "PATH TO YOUR PRIVATE KEY"
doneA systems engineering process for establishing and maintaining consistency... - Wikipedia
http_server:
pkg:
- installed
- pkgs:
- nginx
- python
- mysqlmssql:
12.0.4100.1:
installer: 'salt://win/repo/sql/setup.exe'
full_name: Microsoft SQL Server 2014 Setup (English)
reboot: False
install_flags: ' /ACTION=install /IACCEPTSQLSERVERLICENSETERMS /Q'
cache_dir: True$ salt '*' pkg.install 'mssql' version=12.0.4100.1{
"variables": {
"aws_access_key": "",
"aws_secret_key": ""
},
"builders": [{
"type": "amazon-ebs",
"access_key": "{{user `aws_access_key`}}",
"secret_key": "{{user `aws_secret_key`}}",
"region": "us-east-1",
"source_ami": "ami-de0d9eb7",
"instance_type": "t1.micro",
"ssh_username": "ubuntu",
"ami_name": "packer-example {{timestamp}}"
}]
}Organisations using CI typically use a build server to implement continuous processes of applying quality control - Wikipedia
APIClient client = new APIClient("http://<server>/testrail/");
client.User = "..";
client.Password = "..";
JObject c = (JObject) client.SendGet("get_case/4");
Console.WriteLine(c["title"]);client = APIClient('http://<server>/testrail/')
client.user = '..'
client.password = '..'
case = client.send_get('get_case/1')
pprint(case)$ npm install -g mochadescribe('hooks', function() {
before(function() {...}); // before all tests
after(function() {...}); // after all tests
beforeEach(function() {...}); // before each test
afterEach(function() {}); // after each test
// test cases
});frisby.create('Ensure we are dealing with a teapot')
.get('http://httpbin.org/status/418')
.expectStatus(418)
.toss()frisby.create('Ensure Twitter has at least one list that is "NBA"')
.get('https://api.twitter.com/1/lists/all.json?screen_name=twitter')
.expectStatus(200)
.expectHeader('content-type', 'application/json')
.expectJSON('?', {
name: "NBA",
full_name: "@twitter/nba-7",
id_str: "42840851",
description: "All verified NBA players on Twitter",
mode: "public"
})
.toss();.expectJSONTypes('*', {
id_str: String,
retweeted: Boolean
});.expectJSON({
args: {
foo: 'bar',
bar: 'baz'
}
});frisby.create('First test')
.get('http://httpbin.org/get?foo=bar')
afterJSON(function(json) {
// Now you can use 'json' in additional requests
frisby.create('Second test, run after first is completed')
.get('http://httpbin.org/get?bar=' + json.args.foo)
.toss()
});
.toss()module.exports = {
'Demo test Google' : function (client) {
client
.url('http://www.google.com')
.waitForElementVisible('body', 1000)
.assert.title('Google')
.assert.visible('input[type=text]')
.setValue('input[type=text]', 'rembrandt van rijn')
.waitForElementVisible('button[name=btnG]', 1000)
.click('button[name=btnG]')
.pause(1000)
.assert.containsText('ol#rso li:first-child',
'Rembrandt - Wikipedia')
.end();
}
};If you get a chance