霍格沃兹测试学院 –老钱
江湖代号:老钱
高级测试开发工程师
互联网行业工作时间10年:2年开发,8年测试;涉及后端
开发,测具开运维动化测试
作,目前在一家互联网金融公司担任测试开发工程师。
个人介绍
基础知识简要回顾
持续集成、持续交付的好处与产生的必然性
Jenkins 服务的搭建方法
Jenkins 节点管理与用户权限
Jenkins 插件
Jenkins 父子多任务关联运行
CON ENTS
Selenium Web UI 自动化测试持续集成实战
Appium App UI 自动化测试持续集成实战
持续集成体系建设实战
接口功能自动化测试持续集成实战
01
章节 PART
接口功能自动化测试持续集成实战
接口功能自动化测试项目介绍
接口功能测试应用 http://www.weather.com.cn/data/cityinfo/
接口功能:获得对应城市的天气预报
源码:Python
功能包:HttpClient
请求方法:Get
接口功能自动化测试项目介绍
自动化测试框架 pytest
开发工具 PyCharm
源码位置:https://github.com/princeqjzh/iInterface_python
接口功能自动化测试项目介绍
业务过程:
请求接口传入对应参数
解析返回JSON
获取对应 [城市] 返回值
校验结果正确性
输出报告
接口功能自动化测试项目源码讲
打开 PyCharm
HttpClient:网络Http请求类
Weather():测试用例类
README.md:说明
接口功能自动化测试项目源码讲
模拟接口测试用例通过 actual_value == expect_value
模拟接口测试用例失败 actual_value != expect_value
本地代码讲解和运行演示 - Demo
接口功能自动化测试持续集成演练
接口自动化构建代码
接口功能自动化测试持续集成演练
Demo 展示:创建Jenkins 接口自动化测试项目
项目配置
运行构建效果演示
配置 Allure 报告
Allure Report 更好看一些
环境准备:
运行环境上需要安装allure report 运行环境
Jenkins allure report 插件
配置 Allure 报告
环境准备:
Python 依赖准备: pip install allure-pytest
运行代码:
pytest -sv test/weather_test.py --alluredir ./allure-results
Jenkins 集成 Allure 报告
构建配置: 添加Allure ReportPost-build Actions
Jenkins 集成 Allure 报告
运行效果
Jenkins 集成 Allure 报告
Demo Allure Report 配置和运行
本章小结
自动化测试实例: Python 代码
利用Python常用package中的类发起接口请求、获取接口返回值、解析
JSON字段、校验结果正确性
利用pytest框架来运行接口测试,控制程序的生命周期
Allure report 测试结果展示
Jenkins任务:源码同步、运行任务、展示测试报告、发送邮件
CON ENTS
Selenium Web UI 自动化测试持续集成实战
Appium App UI 自动化测试持续集成实战
持续集成体系建设实战
接口功能自动化测试持续集成实战
02
章节 PART
Web UI 自动化测试持续集成实战
Selenium自动化测试项目介绍
用例业务内容: 测试百度网首页搜索关键词之后,跳转页面标题的正确性;
python 代码实现
Web UI 测试框架 SeleniumWebDriver
自动化测试框架 pytest
开发工具 PyCharm
源码位置:https://github.com/princeqjzh/iSelenium_Python
Selenium自动化测试项目介绍
测试过程动作
访问首页,搜索今日头条 验证正确性
访问首页,搜索王者荣耀 验证正确性
Selenium自动化测试项目介绍
测试代码知识点
运行类需继承 unittest.TestCase
setUp() 测试准备方法,用于环境初始化
tearDown() 测试结束方法,用于环境清理
所有测试执行方法需要以 test_ 开头
两个测试动作执行方法 test_webui_1(), test_webui_2()
get_config() 方法读取配置文件
运行程序之前需要将配置文件iselenium.ini 复制/粘贴到自己测试执行环境的 user.home 目录下,并
按照自己机器的实际路径配置 chrome_driver 的路径
Selenium自动化测试项目介绍
Demo 代码工程讲解
开发工具 PyCharm
本地IDE运行测试类可以创建py.test 运行方法
Selenium自动化测试项目介绍
iSelenium_Python 源码克隆到你的本地
可以先Fork 然后再克隆你Fork之后的源码项目(源码修改后可以pushgithub
也可以直接下载(源码修改后不能pushgithub
克隆参考代码: git clone git@github.com:princeqjzh/iSelenium_Python.git
Selenium自动化测试项目介绍
额外知识点:chrome driver 怎么找?
本机需要安装chrome 浏览器
Chrome driver 版本与chrome浏览器版本有支持对应关系
Chrome driver 下载参考网站: http://npm.taobao.org/mirrors/chromedriver/
对应需要下载的driver版本
Selenium自动化测试演练
运行环境可以与Jenkins同一台机器,也可以与Jenkins不同机器
课堂实例使用与Jenkins同一台机器便于演示
运行环境上需要事先配置python3运行环境,保证pytest可以运行
确保环境配置是OK的,可以运行Seleniumweb自动化测试程序
Selenium自动化测试演练
Jenkins中新建一个自由风格的项目
配置git 地址链接(ssh 格式),添加Checkout to sub-directory
添加运行参数,控制是否为有界面运行
添加Python库更新代码: pip install -r requirements.txt
添加运行代码: pytest -sv test/web_ut.py
添加Allure Report Post-build Actions中用于展示测试结果
Selenium自动化测试演练
配置运行参数
Selenium自动化测试演练
添加运行代码
Selenium自动化测试演练
Demo
创建Jenkins Selenium 自动化测试项目
运行构建效果演练
配置 Allure 报告
环境准备
Python 依赖准备 pip install allure-pytest
添加代码:
@allure.feature(‘feature name’)
@allure.story(’story name’)
运行命令
pytest -sv test/ web_ut.py --alluredir ./allure-results
Jenkins 集成 Allure 报告
添加测试结果展示
Selenium自动化测试演练
运行效果
Jenkins 集成 Allure 报告
Demo Allure Report 配置和运行
本章小结
自动化测试实例: Python代码的 Selenium_Python 项目
利用配置文件记录环境参数,保证相同的代码可以在不同环境上去运行
Selenium 驱动UI测试运行
利用参数控制是否带界面运行
自动化测试框架 pytest 控制测试程序的生命周期
生成Allure Report 测试结果报告
Jenkins 任务集成整个自动化测试运行过程
CON ENTS
Selenium Web UI 自动化测试持续集成实战
Appium App UI 自动化测试持续集成实战
持续集成体系建设实战
接口功能自动化测试持续集成实战
03
章节 PART
App UI 自动化测试持续集成实战
Appium自动化测试项目介绍
移动端UI自动化测试 安卓
测试app ContactManager
app自动化驱动框架 Appium
自动化测试架构 pytest
引入依赖 pytest-testconfig,安装方法 pip install pytest-testconfig
源码位置:https://github.com/princeqjzh/iAppium_python
Appium自动化测试UI操作步骤
打开app
单击 Add Contact 按钮
Contact Name 中输入 阿三
Contact Email中输入 email 地址
单击 Save 按钮
校验之后是否返回到了首页
Appium自动化测试源码讲解
IDEPyCharm
unittest.TestCase:基础类,控制自动化测试程序运行周期
cm_test.py 自动化测试执行类
ContactManager.apk:安卓app
iAppium_python.json:参数配置文件
readme.md:说明文件
Appium自动化测试源码讲解
运行前需要先启动 Appium Server
实现需要配置好运行的实体机或者模拟器
本地代码讲解和运行演示 - Demo
Appium自动化测试持续集成实战
运行环境可以与Jenkins同一台机器,也可以与Jenkins不同机器
课堂实例使用与Jenkins同一台机器便于演示
确保 Appium Server 配置正确,可以运行Appium的自动化测试程序
启动 Appium Server 连接外部实机或者开启模拟器
Appium自动化测试持续集成实战
Jenkins中新建一个自由风格的项目
配置git 地址链接(ssh 格式),添加Checkout to sub-directory
添加Python库更新命令: pip install -r requirements.txt
添加运行命令: pytest -sv test/cm_test.py --tc-file /ur_path/iAppium_python.json --
tc-format json
可以根据需要去配置定时任务和触发条件(可选项)
启动Appium Server
源码检出到子目录
添加自动化运行代码
Appium自动化测试持续集成实战
Demo
创建Jenkins Appium 自动化测试项目
模拟器
运行构建效果演练
本章小结
自动化测试实例: Python代码的 Appium 项目
运行之前要正确的配置Appium Server 安卓运行环境,包括 安卓SDK以及 实体
或者 模拟器
Appium控制appUI自动化测试,pytest 来驱动测试程序的运行周期
利用JSON格式配置文件记录运行环境参数,在自动化测试运过程中进行加载
Jenkins 自由风格任务集成自动化测试任务
CON ENTS
Selenium Web UI 自动化测试持续集成实战
Appium App UI 自动化测试持续集成实战
持续集成体系建设实战
接口功能自动化测试持续集成实战
04
章节 PART
持续集成体系建设
目标
实战任务的故事
从源码制作出可运行App,支持测试工作
各种自动任务
Daily Build打包
Daily Build发布
Daily Build UI自动测试(BVT Build Verification Test
利用技术来帮助做活儿
目标
优势:
重复性定式劳动任务,减少人力参与,提升工作效率
Build不再是阻碍测试进度的因素
自动化重用率高,维护频率低
涉及技术点
Android App 构建
Android SDK 使用
安卓模拟器 真机
Python + Appium自动化测试
Jenkins 持续集成
Shell脚本开发
Java 程序开发
Git github使用)
测试App构建、打包过程
Android 应用(例子程序)
源码位置: https://github.com/princeqjzh/AndroidSampleApp
安卓打包的目标文件: app-debug.apk文件
安卓打包命令: gradlew clean assembleDebug
安卓安装包的输出路径: /app/build/outputs/apk/debug/app-debug.apk
测试App构建、打包过程
关于安卓打包的环境要求
JDK
Android SDK
Gradle
测试App构建、打包过程
Demo 安卓Sample App构建、打包过程演示
安卓App部署
前提条件:
安卓实体机或者安卓模拟器
安卓SDK
目标:通过命令安装 / 卸载 App
安卓App部署
命令控制apk安装与卸载
安装: adb install <file_path>
卸载: adb uninstall <package_name>
安卓App部署
Demo 安卓App部署演练
安卓UI自动化测试
Appium app自动测试
源码位置: https://github.com/princeqjzh/iAppBVT_Python
开发工具: PyCharm
UI自动化框架:Appium
测试执行框架:pytest
安卓UI自动化测试
实现验证点:
App可安装
App可启动
App首页预期的元素存在
安卓UI自动化测试
校验步骤
启动App
检查Record Event 是否存在
结束输出结果
安卓UI自动化测试
Demo:自动化测试源码讲解与运行演示
安卓App持续集成体系建设实战演练
将之前内容所做事情用Jenkins任务来实现
Jenkins平台源码构建、打包、发布app测试包
Jenkins自动部署、测试新app测试包
Jenkins通知运行结果
实现流程图
拉源代码
安卓编译,打包
运行appium
自动测试
任务结束
输出apk
报告结果
部署apk文件到
模拟器
安卓App打包任务
安卓App发布 输出apk文件
安卓App自动部署、测试任务
App打包任务与自动部署、测试任务关联
实现完成打包任务之后,运行自动测试任务,安装新包,并运行UI自动测
试验证新安装包的正确性
配置任务结果邮件通知
任务完成之后要把结果周知到相关人员,可以通过email的方式进行通知
结果通知
任务正确完成
Demo操演
创建Jenkins App编译、打包、发布任务
创建Jenkins App自动测试任务
配置任务关联,运行测试效果
本章小结
App持续集成体系:全自动化打包、发布、部署、测试的实现思路
安卓 App的构建、打包方法
安卓 App部署与自动化测试实践
利用 Jenkins 平台进行持续集成演练
本章小结
涉及到的内容回顾:
- Java
- Gradle
- Appium
- Android SDK
- Shell
- Jenkins
- python
- Git
CON ENTS
Selenium Web UI 自动化测试持续集成实战
Appium App UI 自动化测试持续集成实战
持续集成体系建设实战
接口功能自动化测试持续集成实战
课程总结
接口自动化测试持续集成
UI自动化测试持续集成
通过参数来控制运行方式
控制有界面 or 无界面运行
展示Allure Report 测试报告
读入配置参数文件的两种方法
从源码到可测包,外加自动化测试验证的全流程持续集成体系建设
Thanks