本文整理归纳以往的工作中用到的东西,现汇总成基础测试框架提供分享。
框架采用python3 + selenium3 + PO + yaml + ddt + unittest等技术编写成基础测试框架,能适应日常测试工作需要。
1、使用Page Object模式将页面定位和业务操作分开,分离测试对象(元素对象)和测试脚本(用例脚本),一个页面建一个对象类,提高用例的可维护性;
2、使用yaml管理页面控件元素数据和测试用例数据。例如元素ID等发生变化时,不需要去修改测试代码,只需要在对应的页面元素yaml文件中修改即可;
3、分模块管理,互不影响,随时组装,即拿即用。
测试框架分层设计
把常见的操作和查找封装成基础类,不管是什么产品,可直接拿来复用
业务层主要是封装对象页面类,一个页面建一个类,业务层页面继承基础层
用例层针对产品页面功能进行构造摸拟执行测试
框架层提供基础组件,支撑整个流程执行及功能扩展,给用例层提供各页面的元素数据、用例测试数据,测试报告输出等
测试框架目录结构
如下思维导图目录结构介绍:
编写用例方法
login.yaml
例如,我们要新增登录功能测试用例:
首先,只需在testyaml目录下新增一个页面对象yaml文件,参考login.yaml格式编写即可。这些文件是提供给Axitrader返佣https://www.kaifx.cn/broker/axitrader.html封装页面对象类调用并执行定位识别操作。
login_data.yaml
其次,在testdata目录下新增一个login_data.yaml文件提供给登录接口传参的测试数据,编写格式参考login_data.yaml文件。
loginPage.py
然后,在page_obj目录下新增一个loginPage.py文件,是用来封装登录页面对象类,执行登录测试流程操作。
login_sta.py
最后,在testcase目录下创建测试用例文件login_sta.py,采用ddt数据驱动读取yaml测试数据文件
综上所述,编写用例方法只需要按以上四个步骤创建->编写即可。
执行如下主程序,可看输出的实际结果。
common
包含:基本的公共方法类,比如HTML报告、Log处理、发送邮件、基本页面对象等
其中pageObject里面是对各个测试系统操作页面的一个封装,以后用例的方法直接继承即可。可多次调用,维护起来比较方便。
conf
基本的系统参数配置信息,可以包含url,正确用户的信息,简单日志级别,某些输出位置,邮件信息等
data
对于数据驱动或者其他测试用例中需要测试的数据,之后测试用例流程不变,可以直接在文档中进行测试数据的修改。暂时采用excel。也可以采用csv,xml等等方法
log
日志输出,暂时包括了 log输出,htmlreport输出以及img的保存。
test
其中包含testcase以及testsuite两个模块
testcase 负责编写测试用例如果某个功能有多个py文件编写可以再新建一个目录。
testsuite 就是测试套件,可以按需求进行选择需要的测试项(包含测试用例以及测试类)
注意:使用ddt则不可以再使用addTest方式单独添加测试用例了。
|
|