NetTesterで物理NWのテストをプログラム / NetOpsCoding4-LT-NetTester

B2a04c1ec959edba430bcb38ca6ffc81?s=47 m.hagiwara
October 27, 2016

NetTesterで物理NWのテストをプログラム / NetOpsCoding4-LT-NetTester

NetOpsCoding#4 : ATND https://atnd.org/events/82204
LT

B2a04c1ec959edba430bcb38ca6ffc81?s=128

m.hagiwara

October 27, 2016
Tweet

Transcript

  1. NetTester で 物理ネットワークの テストをプログラム!

  2. None
  3. プロビジョニングを自動化して で環境が作れるようにした 5分 3時間 かけて 業務システムが問題なく動くか チェックをする

  4. https://asciinema.org/a/9n8oteqg2h8v47ximy7xfqhfc

  5. Feature: 社内 Git サービス ヨーヨーダイン社の開発者として、 社内 Git サーバにアクセスしたい なぜならソースコードを社内 Git

    サーバで管理しているから Scenario: 社内 Git サービスへアクセス Given ヨーヨーダイン社 の Git リポジトリサーバ And Git クライアントとなる開発者 PC When 開発者 PC から社内 Git リポジトリへアクセス Then 社内 Git リポジトリにアクセス成功
  6. FactoryGirl.define do trait :internal_network_host do netmask '255.255.255.0' gateway '10.10.10.254' mac_address

    { Faker::Internet.mac_address('00') } end factory :git_server, class: Netns do internal_network_host name 'git_server' ip_address '10.10.10.1' virtual_port_number 3 physical_port_number 3 end factory :git_client, class: Netns do internal_network_host name 'git_client' ip_address '10.10.10.3' virtual_port_number 2 physical_port_number 2 end end Given(/^ヨーヨーダイン社 の Git リポジトリサーバ$/) do @git_server = Netns.new(attributes_for(:git_server)) Thread.start { @git_server.exec "bash -c 'echo OK | nc -l 11000'" } sleep 3 end Given(/^Git クライアントとなる開発者 PC$/) do @git_client = Netns.new(attributes_for(:git_client)) end When(/^開発者 PC から社内 Git リポジトリへアクセス$/) do cd('.') do @git_client.exec "nc -v #{@git_server.ip_address} 11000 > log/nc_git.log" end end Then(/^社内 Git リポジトリにアクセス成功$/) do step %(the file "log/nc_git.log" should contain "OK") end
  7. @git_client @git_server port3 port2 port3 port2 ens5 テスト対象は CとかJとかのNW機械で組んだ 普通の物理ネットワーク

    Datapath-ID: 0x1
  8. NetTester https://github.com/net-tester 物理ネットワークのための受け入れテストツール