2 Star 0 Fork 0

liuyi1681688 / automated-test-framework-master

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

设计思路

UI自动化测试框架基于python-selenium-unittest-HTMLTestRunner

互联网公司更新迭代比较快,版本发布频率较高,在每次上线之前要做一次整体的回归测试,所以留给测试人员的时间并没有很多, 实施UI自动化测试,构建到jenkins上进行周期的运行,提测后,或者上线前都会进行运行测试,保障每一次更新迭代功能不受影响。

框架主要使用了page_object模式,对每个页面进行封装,需要操作时直接调用封装的方法,这样做的好处是如果页面发生变化,不需要 去调整用例,只需要对封装的页面进行调整。

分模块管理,互不影响,随时组装,即拿即用。

#测试框架分层设计 把常见的操作和查找封装成基础类,不管是什么产品,可直接拿来复用 业务层主要是封装对象页面类,一个页面建一个类,业务层页面继承基础层 用例层针对产品页面功能进行构造摸拟执行测试 框架层提供基础组件,支撑整个流程执行及功能扩展,给用例层提供各页面的元素数据、用例测试数据,测试报告输出等

安装说明如下:

安装python

下载地址如下:

https://www.python.org/downloads/release/python-365/

安装时记得勾选Add Python 3.6 to PATH

下载selenium第三方包

cmd命令行输入如下:

Pip install selenium

Pip install requests

进入到程序根目录运行:

pip install -r requirements.txt

配置文件

把driver目录下的浏览器驱动文件chromedriver文件和报表插件HTMLTestRunner_PY3.py放置在指定目录

chromedriver复制到chrome目录和path下,如C:\Program Files (x86)\Google\Chrome\Application

chromedriver复制到python目录和path下,如D:\software\python36

HTMLTestRunner_PY3.py复制到python目录lib下,如C:\Python36\Lib

框架使用说明如下:

编写用例方法

例如,我们要新增登录功能测试用例:

首先,在page_obj目录下新增一个loginPage.py文件,是用来封装登录页面对象类,执行登录测试流程操作; 然后,在test_case目录下创建测试用例文件A_login_case.py,采用测试业务代码驱动读取测试数据; 综上所述,编写用例方法只需要按以上两个个步骤创建->编写即可。

测试结果展示

HTML报告日志 HTML报告点击截图,弹出截图 测试报告通过的日志 自动截图存放指定的目录 邮件测试报告

脚本设计原则

尽量用相对路径的xpath表达式;

查找元素优先用显示等待;

用例与用例之间尽量避免产生依赖,用例可以独立执行;

用例执行结束后对测试场景进行还原,避免影响其他用例的执行;

脚本执行失败后加入重试机制,提升用例的稳定性;

尽量保证单独的测试环境,避免其他的测试同步进行;

用例设计原则

UI自动化测试用例是从手工测试用例中提取出来的,跟手工测试用例相比,自动化测试用例更加注重用例的严谨性,选择用例的时候遵循以下原则:

优先选取覆盖产品核心功能的用例;

从成本考量,不要选择流程过于复杂的用例;

选取的用例可以是重复执行,繁琐的部分,比如字段验证、提示信息验证;

优先实现正向的测试用例,反向用例一般情况复杂、数量多;

更新说明

2022-04-14 1.测试报告文件调整为HTMLTestRunner_cn.py,请将文件放置在\Python\Python36\Lib目录下 2.调整测试用例每个case文件启动一次浏览器(之前为每个用例启动一次) 3.通过正则获取图片验证码base64,用dddocr自动识别图片验证码

2022-04-20 1.调整每个case文件只需要第一条用例执行登陆即可,相同case下的其他用例取消登陆,增加运行速度。

2022-04-25 1.增加错误重试机制,当用例执行错误或者失败,则重新处理一次,取最后一次结果 2.增加报告发送邮件正文,编写html类型的邮件正文,MIMEtext()用于定义邮件正文

空文件

简介

框架主要使用了page_obje模式,对每个页面进行封装,需要操作时直接调用封装的方法,这样做的好处是如果页面发生变化,不需要去调整用例,只需要对封装的页面进行调整。 展开 收起
Python 等 3 种语言
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Python
1
https://gitee.com/liuyi1681688/automated-test-framework-master.git
git@gitee.com:liuyi1681688/automated-test-framework-master.git
liuyi1681688
automated-test-framework-master
automated-test-framework-master
master

搜索帮助