项目结构:
autotest-airtest-web:
    ---common 存放公共方法
    ---air_case 存放用例case
    ---templates 存在模板报告
    ---report 存放case执行总报告及各用例报告
    ---log 存放case执行日志
    ---data 存放数据
    ---runner.py case执行调度入口
    ---distribute.py 任务分发及上传数据到云平台

不方便准备环境的童鞋可以直接登录云编辑器，在云编辑器上直接开发用例，操作手册链接：http://space.babytree-inc.com/pages/viewpage.action?pageId=27535942
如果有权限问题，请联系caiyubing解决
一、环境准备:
1、python包安装:
要求： python要python3以上，pip版本要在20以上。使用python -V和pip -V查看各自版本
将python安装环境配置到环境变量中
详细安装文档参考http://space.babytree-inc.com/pages/viewpage.action?pageId=24940086，编写用例手册查看http://space.babytree-inc.com/pages/viewpage.action?pageId=24940840


2、安装chromedriver，后面跑web测试需要用到。
直接下载chromedriver并添加路径
http://chromedriver.storage.googleapis.com/index.html
下载和chrome及电脑系统对应版本的chromedriver
--mac添加到路径的方式是：
进入下载文件所在位置
unzip chromedriver_mac64.zip
mv chromedriver /usr/local/bin
--windows添加到路径的方式是
Windows 进入系统->高级设置->环境变量进行设置->选中path，点编辑，把chrome浏览器的路径(比如：C:\Users\Administrator\AppData\Local\Google\Chrome\Application)和chromedriver的路径加到path里。

二、case编写
可根据不同的情况选择拷贝不同的demo脚本。
本地执行dubbo拷贝【dubbo-local-demo.air】文件
openapi拷贝【openapi-demo.air】文件
mapi get请求拷贝【httpget-demo.air】文件
mapi post请求拷贝【httppost-demo.air】文件
注意：
    1. 拷贝后修改文件名.air的文件名和.py的文件名保持一致
    2. 请注意下方case_tag中新增pool名、taskCode、执行环境（sit/on/pre）等其他需要增加的tag


三、case 执行：
执行某个tag的case并设置日志等级为DEBUG, tag在每个用例上的case_tag的后面取:
python runner.py tag 100086 DEBUG sit
执行case中的某个场景命令:
python runner.py sc 月嫂 babyCareSearch  传参sortType=1 DEBUG sit
说明: 月嫂 模块名 babyCareSearch(.air文件夹的名字) 传参sortType=1(场景的名字,支持模糊匹配,但是不能有空格)

多个casetag用英文逗号分割。 如果需要同时满足多种tag用#分割
如python runner.py tag api#user-web DEBUG sit    表示执行同时满足api 且 user-web两个条件的case
python runner.py tag api#user-web,health-web    表示执行满足api 且 （user-web或者health-web）条件的case

DEBUG表示设置日志等级，可选参数有
DEBUG，INFO，WARN
sit表示选择执行环境。可输入参数sit,on,pre
sit表示测试环境，on 表示线上环境, pre预生产环境
具体case能否在各环境执行视case情况而定

四、任务分发
如果本地调试用二中的方式调用就行。
如果需要快速执行完任务，把任务分发的几个不同的子job去执行就采用以下调度方式。子job需要自己创建
python distribute.py %tag% %cases% %log_level% %num% %JobOrDevice% %pool_name% %run_env% %JOB_NAME% %BUILD_NUMBER% %JOB_URL% %BUILD_USER% %oldrev% %newrev% %deployid% %cbtoken%
如果不需要分发任务到其他子job，num传参数1，JobOrDevice传本job名


#重要说明
自动化case在sit,pre,on三个环境下执行。sit环境可以直接通过命令连接数据库。而pre,on环境需要从http://idb.baobaoshu.com/ 里去查询。
我们封装的查询方法在 common/db/sql/sql.py里。登录账号及选择数据库，环境，服务器需要各业务线根据自己的需求去自主填写。
即在common/db/sql/sql.py 里找到以下内容，填入对应值。
driver.find_element_by_id('username').send_keys()
driver.find_element_by_name('password').send_keys()
#选择数据库,，括号里填入自己数据库的值
Select(driver.find_element_by_id("database")).select_by_value()
#选择环境
Select(driver.find_element_by_id("environment")).select_by_value()
#选择服务器
Select(driver.find_element_by_id("server")).select_by_value()

五、功能介绍
> 支持美囤和北京数据库测试环境线上环境查询、美囤测试环境update和delete
例子:
  美囤调用: result_db = dbOP().selectSql('exp_expert', [0, 20])
  北京调用: result_db = dbOP().selectSql('exp_expert', [0, 20], 'bj_db')


六、 如何进行代码review
> 代码提交到gerrit后,请通知团队的测试进行review
> review结果请写入到reply中
若用例中掉了场景,则需要填写;用例XXXX(填上.air名)差场景:XXX、场景:XXX,并通知开发修改
若case没有问题,则直接写review通过
>

