Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

m.hagiwara
October 27, 2016

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

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

m.hagiwara

October 27, 2016
Tweet

More Decks by m.hagiwara

Other Decks in Technology

Transcript

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

    サーバで管理しているから Scenario: 社内 Git サービスへアクセス Given ヨーヨーダイン社 の Git リポジトリサーバ And Git クライアントとなる開発者 PC When 開発者 PC から社内 Git リポジトリへアクセス Then 社内 Git リポジトリにアクセス成功
  2. 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