Skip to content

Latest commit

 

History

History
80 lines (66 loc) · 2.1 KB

File metadata and controls

80 lines (66 loc) · 2.1 KB

Selenium UI testing with AWS Lambda Layers

This is an example of set up Selenium testing with AWS lambda layers Python3.6

File Structure

  • seleniumLayer - Selenium
  • lambda
── /seleniumLayer/  # lambda layers
  ├── /selenium  lambda layer of selenium lib
  │  └──/python/      # python libs
  │   └── /lib/    
  │     └── /python3.6/*    
  ├── /chromedriver/    # lambda layer of headless Chrome 
  │ ├── /chromedriver   # chrome driver
  │ └── /headless-chromium # headless chrome binary
  └── /serverless.yaml     
── /lambda/            # lambda function
  ├── /handler.py      # source code of lambda function 
  └── /serverless.yaml # serverless config

Stack

Install

Go to root directory of project

# download Selenium 2.37
$ pip3.6 install -t seleniumLayer/selenium/python/lib/python3.6/site-packages selenium=2.37

# download chrome driver
$ cd seleniumLayer
$ mkdir chromedriver
$ cd chromedriver
$ curl -SL https://chromedriver.storage.googleapis.com/2.37/chromedriver_linux64.zip > chromedriver.zip
$ unzip chromedriver.zip
$ rm chromedriver.zip

# download chrome binary
$ curl -SL https://github.com/adieuadieu/serverless-chrome/releases/download/v1.0.0-41/stable-headless-chromium-amazonlinux-2017-03.zip > headless-chromium.zip
$ unzip headless-chromium.zip
$ rm headless-chromium.zip

Install serverless command

Do this if you don't have serverless in your machine yet

npm config set prefix /usr/local
and then,
npm i -g serverless

Deploy Lambda Layers

Go to root directory of project

$ cd seleniumLayer
$ sls deploy 

Deploy Lambda Function

Go to root directory of project

$ cd lambda
$ sls deploy 

Start Testing

Go to root directory of project

$ cd lambda
$ sls invoke --function hello