Docker commands

docker build -t friendlyname . # Create image using this directory’s Dockerfile
docker run -p 4000:80 friendlyname # Run “friendlyname” mapping port 4000 to 80
docker run -d -p 4000:80 friendlyname # Same thing, but in detached mode
docker ps # See a list of all running containers
docker stop <hash> # Gracefully stop the specified container
docker ps -a # See a list of all containers, even the ones not running
docker kill <hash> # Force shutdown of the specified container
docker rm <hash> # Remove the specified container from this machine
docker rm $(docker ps -a -q) # Remove all containers from this machine
docker images -a # Show all images on this machine
docker rmi <imagename> # Remove the specified image from this machine
docker rmi $(docker images -q) # Remove all images from this machine
docker login # Log in this CLI session using your Docker credentials
docker tag <image> username/repository:tag # Tag <image> for upload to registry
docker push username/repository:tag # Upload tagged image to registry
docker run username/repository:tag # Run image from a registry

docker stack ls # List all running applications on this Docker host
docker stack deploy -c <composefile> <appname> # Run the specified Compose file
docker stack services <appname> # List the services associated with an app
docker stack ps <appname> # List the running containers associated with an app
docker stack rm <appname> # Tear down an application

docker-machine create –driver virtualbox myvm1 # Create a VM (Mac, Win7, Linux)
docker-machine create -d hyperv –hyperv-virtual-switch “myswitch” myvm1 # Win10
docker-machine env myvm1 # View basic information about your node
docker-machine ssh myvm1 “docker node ls” # List the nodes in your swarm
docker-machine ssh myvm1 “docker node inspect <node ID>” # Inspect a node
docker-machine ssh myvm1 “docker swarm join-token -q worker” # View join token
docker-machine ssh myvm1 # Open an SSH session with the VM; type “exit” to end
docker-machine ssh myvm2 “docker swarm leave” # Make the worker leave the swarm
docker-machine ssh myvm1 “docker swarm leave -f” # Make master leave, kill swarm
docker-machine start myvm1 # Start a VM that is currently not running
docker-machine stop $(docker-machine ls -q) # Stop all running VMs
docker-machine rm $(docker-machine ls -q) # Delete all VMs and their disk images
docker-machine scp docker-compose.yml myvm1:~ # Copy file to node’s home dir
docker-machine ssh myvm1 “docker stack deploy -c <file> <app>” # Deploy an app

Related useful skillset

React Redux:
http://redux.js.org/docs/basics/UsageWithReact.html

webpack: https://webpack.js.org/plugins/

React Waypoint:
https://github.com/brigade/react-waypoint

progressive-web-apps: https://developers.google.com/web/progressive-web-apps/

React: https://facebook.github.io/react/blog/2016/11/16/react-v15.4.0.html#profiling-components-with-chrome-timeline

service-workers: https://developers.google.com/web/fundamentals/getting-started/primers/service-workers

2017 Week 33

2017-08-10

  1. Transfer blog file to local desktop [done]
  2. File upload with sendKeys method [done]

Next:

  1. Mac selenium file upload issue
    robot class
  2. Docker manual read
  3. Progressive Web App
    https://developers.google.com/web/progressive-web-apps/
    https://en.wikipedia.org/wiki/Progressive_web_app
  4. JQuery learning

2017-08-11

  1. Crud – Categories function
    修改功能,一般会依赖‘关键字’去查找定位要修改的数据吗?
    涉及到一个接收用户输入字符串的为
  2. Java Lambda expressions

Weekend:

Update resume

BBQ fee/frais

File upload scenario – selenium

File upload scenario
Test scenario 1:
click ‘Browse…’ button which under form frame, then use sendKeys method
Source code:
/*
       <form id="productImage" action="/ecvbasic/a/sales/products/product" method="POST" enctype="multipart/form-data">
        <div class="form-group">
            <div><input id="uploadProductImages" type="file" multiple=true
        class="file-loading">
            </div>
        </div>
       </form>
*/

Solution:

        driver.findElement(By.id("uploadProductImages")).clear();
        driver.findElement(By.id("uploadProductImages")).sendKeys("/Users/jeanneluo/Desktop/testFileUpload.txt");
        driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS);


Test scenario 2:
File upload, considering the source and the target is not on the same webpage, but the file is dragged from a local drive and dropped into the target! (waiting for fulfilling the solution.)

Windows: AutoIT.exe
Mac: Robot class

Login and Product crud function

day 1:
configure the testing environment in new mbp:
README.md
remind: install maven in MAC
1. install Homebrew
2. brew install maven
3. verify maven version: >mvn –version
4. source mvn: >mvn install
issue1: import is gray, @Before is gray, can’t use ‘Run’ button
fixed solution: reopen ‘pom.xml’ file in Intellij IDE
testing page information:
ps: 123
question 1:
maven project manages several similar projects?
all the test cases are managed by maven configuration?
question 2:
Intellij IDEA how to build tree package structure?
question 3:
login 自动化测试的测试用例有哪些?
question 4:
GUI test 方法有哪些?
question 5:
图片验证,防机器验证怎么测试?
Key1:
mac os configuration for driver initialize
windows configuration for driver initialize
Key2:
question3:xpath 相对路径的tips (blog)
day2 (08-08):
1. try double click action
result: iFrame 里面的 double click action 有问题
Use Actions class to perform mouse, keyboard actions on WebElements using WebDriver.
Actions action = new Actions(driver);
WebElement element=driver.findElement(By.linkText(“TEST”));
//Double click
action.doubleClick(element).perform();
//Mouse over
action.moveToElement(element).perform();
//Right Click
action.contextClick(element).perform();
2. switch to iframe
// Switch to frame by Id
driver.switchTo().frame(“jbox-iframe”);
// Switch to frame by name
//driver.switchTo().frame(“iframe-name”);
// Switch to frame by numbers
//driver.switchTo().frame(0);
3. Handling multiple Iframes with same name?
// first iframe editor
WebElement shortDescriptionFrame = driver.findElement(By.cssSelector(“#cke_2_contents iframe”));
driver.switchTo().frame(shortDescriptionFrame);
WebElement editor = driver.findElement(By.tagName(“body”));
editor.sendKeys(“Galette de riz, concombre, saumon fumée, tempura, avocat, caviar, teriyaki sauce”);
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
// second iframe editor
WebElement descriptionFrame = driver.findElement(By.cssSelector("#cke_1_contents iframe"));
driver.switchTo().frame(descriptionFrame);

WebElement descriptionEditor = driver.findElement(By.tagName("body"));
descriptionEditor.sendKeys("alette de riz, concombre, saumon fumée, tempura, avocat, caviar, teriyaki sauce");
driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS);

driver.switchTo().defaultContent();