软件概要
该软件实现了自动化生成测试报告。首先测试人员生成测试脚本(亦即jmx文件),然后使用Python脚本和Shell脚本,实现自动化生成测试报告。生成测试报告使用了ant和jmeter。
自动化生成测试报告目录结构如下:
tree auto_gen_testing_reports
auto_gen_testing_reports
├── auto_deploy_app_remote.py
├── auto_deploy_app_v_final.py
├── auto_gen_testing_reports.sh
├── build.xml
├── config.conf
├── crontab
├── get_git_version.py
└── test_result.py
0 directories, 8 files
该脚本实现的功能如下:
打印帮助
克隆Git项目
拉取Git项目
配置生成报告
自动生成测试报告
拷贝生成报告
脚本帮助
./auto_deploy_app_remote.py -h
Auto generate testing reports. Write in Python.
Version 1.0. By Robin Wen. Email:dbarobinwen@gmail.com
Usage auto_deploy_app.py [-hpas]
[-h | --help] Prints this help and usage message
[-c | --git-clone] Clone the repo via git
[-u | --git-pull] Update the repo via git
[-p | --pre-conf] Pre config before generate testing reports
[-a | --auto-gen] Auto generate testing reports
[-s | --scp-report] SCP generated testing reports
在脚本名后加上「-h 或者 --help」表示打印帮助。
同理,加上「-c | --git-clone」表示克隆Git项目,加上「-u | --git-pull」表示获取Git项目,加上「-p | -pre-conf」表示测试前准备,加上「-a | --auto-gen」表示自动化生成测试报告,加上「-s | --scp-report」表示拷贝生成的测试报告。
脚本概述
如前所述,「auto_deploy_app_remote.py」是主执行脚本,用于显示帮助以及调用相应函数。「auto_deploy_app_v_final.py」是核心执行脚本,实现所有的相关功能。核心执行脚本采用Fabric实现远程执行命令,主执行脚本再通过fab -f 脚本名 任务名调用相应方法。
主执行脚本和核心执行脚本的方法名基本一致,主执行脚本包括如下方法:main(argv)、usage()、git_clone()、git_pull()、pre_conf()、auto_gen()和scp_report()。
核心执行脚本包括如下方法:git_clone()、git_pull()、pre_conf()、auto_gen()、scp_report()和getConfig()。
主执行脚本:
main(argv) 主函数
usage() 使用说明函数
git_clone() 克隆项目函数
git_pull() 拉取项目函数
pre_conf() 执行自动化生成测试报告之前的准备工作
auto_gen() 自动化生成测试报告
scp_report() 拷贝生成的测试报告
主执行脚本
主执行脚本内容如下:
参考脚本auto_deploy_app_remote.py。
核心执行脚本
方法和主执行脚本基本一致,相同的不赘述。核心执行脚本还提供getConfig()方法,用于读取配置文件。
核心执行脚本内容如下:
参考脚本auto_deploy_app_v_final.py。
auto_gen_testing_reports.sh脚本实现了自动生成测试报告,并且拷贝生成的测试报告。
参考auto_gen_testing_reports.sh脚本。
build.xml为ant的配置文件。
配置文件概述
完整配置文件内容如下:
# Remote server section.
[remote]
# Remote server ip.
remote_ip=
# Remote server port.
remote_port=
# Remote server username.
remote_usr=
# Remote server password.
remote_pwd=
# Jmeter section.
[jmeter]
# Jmeter home directory.
jmeter_home=
# Ant section.
[ant]
# Ant home directory.
ant_home=
# Scripts section.
[script]
# Mall scripts home dir.
script_dir=
# Jmeter mall scripts section.
mall_script=
# Report section.
[report]
# Report directory.
report_dir=
# Report export directory.
report_exp_dir=
# Git section.
[git]
# Git Url.
git_url=
# Git repo diectory.
git_repo=
接下来,我逐一进行讲解。
配置文件包括以下段:remote、jmeter、ant、script、report和git。
每个段的说明如下:
remote 该段定义远程服务器登录信息。
remote_ip 部署远程服务器IP。
remote_port 部署远程服务器端口。
remote_usr 部署远程服务器用户名。
remote_pwd 部署远程服务器密码。
jmeter 该段定义Jmeter的相关路径。
jmeter_home Jmeter主目录。
ant 该段定义Ant的相关信息。
ant_home Ant的主目录。
script 该段定义脚本相关信息。
script_dir 脚本的主目录。
mall_script 自动化测试报告的脚本路径。
report 该段定义测试报告的相关信息。
report_dir 存放Jmeter脚本的服务器的测试报告目录。
report_exp_dir 导出到远程服务器的测试报告目录。
git 该段定义Git的相关信息。
git_url Git的URL。
git_repo 克隆的Git项目目录。
如有需要,请酌情修改。
脚本使用
Step 1: 把以auto_开头的三个脚本以及config.conf配置文件放到远程服务器,脚本中的路径(YOUR_PATH)请酌情修改。
Step 2: 把get_git_version.py放到存放Jmeter脚本的服务器,请酌情存放。
Step 3: 把build.xml放到存放Jmeter脚本的服务器,其中JMeter.home、testing.testplans.home、testing.report.home参数对应的路径请酌情修改。
Step 4: 远程服务器添加crontab计划任务。
crontab -e
crontab 任务如下。
crontab -l
10 00 * * * bash YOUR_PATH/auto_gen_testing_reports.sh
*/1 * * * * ntpdate pool.ntp.org
该任务定义了凌晨0点10分自动化生成测试报告。
Step 5: 早晨上班就可以看到昨晚生成的测试报告了,如果有问题,把日志给开发人员,再做调试。So easy, 妈妈再也不用担心我加班了!:)