Docker笔记

Dockerメモ

由于学习了Docker,所以做了笔记。

Docker是什么?

2016年版、Dockerのすべてが5分でわかるまとめ!(コマンド一覧付き)
簡単にWebサーバーとかDBサーバーとかの開発環境を作れる。
この作った環境を、簡単に本番環境にも作れるので、開発環境と本番環境が同一となる。

流浪汉和无家可归者有什么不同?

你可以说出Docker和Vagrant的区别吗?即使是新手工程师也可以理解的我自己总结。

Docker只能在Linux上运行。
所以,如果在Mac上使用,需要使用Vagrant来启动Linux,并在那里运行Docker。
实际使用时,使用Docker for Mac会更方便。
可以试试最新的Docker for Mac的公测版本。

Docker应用案例

Docker-composeっていうのを使ってます。
これを使うと、コマンド一個でいろいろ立ち上がるので楽です。

创建LAMP环境

使用Docker Compose来启动LAMP环境。

Dockerコンテナに入る方法

用以下命令在本机执行容器名为`コンテナ名`的容器,并进入bash终端:
$ docker exec -it コンテナ名 bash

如果想要使用本地的源码。

https://github.com/naga3/docker-lamp.git の docker-compose.yml を修正。

volumes:
//  - ./html:/var/www/html -> 左側がlocal環境、右側がコンテナ内。ここを自分の環境見ながら修正
- ~/Code/php:var/www/html //->こうやると、~/Code/php内のファイルをlocalhostで参照できる。

apacheサーバのリスタート

$ docker-compose restart

停止したい時は、$ docker-compose downだけで。
コマンド一覧は、こちらdocker-compose コマンドまとめ

我们的目标。

目前还没有。

创建Selenium执行环境

使用docker-compose来运行一个带有Selenium网格的容器集群。

mkdir selenium-docker
cd selenium-docker
vi docker-compose.yml
docker-compose up -d
hub:
  image: selenium/hub
  ports:
    - "4444:4444"
firefox:
  image: selenium/node-firefox
  links:
    - hub
chrome:
  image: selenium/node-chrome
  links:
    - hub

当你访问http://localhost:4444/grid/console时,如果有任何输出,则表示成功。

创建测试文件

$ mkdir jstest
$ vi package.json
$ npm -g install mocha
$ npm install --save-dev selenium-webdriver
$ npm install --save-dev expect.js
$ vi test.js
$ mocha test.js --timeout 20000
var webdriver = require('selenium-webdriver');
var t = require('selenium-webdriver/testing');
var expect = require('expect.js');
var driver;
var assert = require('assert');
var By = webdriver.By;

t.describe('テスト', function () {
  t.before(function () {
    driver = new webdriver.Builder().usingServer('http://localhost:4444/wd/hub')
      .withCapabilities(webdriver.Capabilities.chrome()).build();
  });

  t.after(function () {
    driver.quit();
  });

  t.it('テスト1', function () {
    driver.get('http://example').then(function () {
      driver.findElement(By.className('btnYes')).click();
      driver.findElement(By.className('btnYes')).click();
      driver.findElement(By.className('btnYes')).click();
      driver.findElement(By.className('btnYes')).click();

      //エラーメッセージを取得して、文言が正しいかチェックする
      var parent = driver.findElement(By.className("test"));
      driver.wait(parent.findElement(By.tagName("a")).getText(), 1000)
        .then(function (text) {
          expect(text).to.be('テストです');
        });
    });
  });
});

在测试时保存屏幕截图。

可以使用这个。

追寻下一个目标

使用上述的方法,可以在Linux环境下使用Chrome和Firefox进行浏览器测试。
另外,为了加快测试速度,可以进行并行执行。
通过使用Docker来搭建Selenium Grid并行执行环境。

为了实现能够通过手机、Mac和Windows环境进行测试,我们将准备实际设备,并将目标定为使用Selenium Grid。

广告
将在 10 秒后关闭
bannerAds