设计思路:

   本文整理归纳以往的工作中用到的东西,现汇总成基础测试框架提供分享。

  框架采用python3 + selenium3 + PO + yaml + ddt + unittest等技术编写成基础测试框架,能适应日常测试工作需要。

  1、使用Page Object模式将页面定位和业务操作分开,分离测试对象(元素对象)和测试脚本(用例脚本),一个页面建一个对象类,提高用例的可维护性;

  2、使用yaml管理页面控件元素数据和测试用例数据。例如元素ID等发生变化时,不需要去修改测试代码,只需要在对应的页面元素yaml文件中修改即可;

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

 

测试框架分层设计

  Python3+Selenium3+PO+Yaml+ddt+Unittest  UI自动化测试框架

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

测试框架目录结构

      Python3+Selenium3+PO+Yaml+ddt+Unittest  UI自动化测试框架

  Python3+Selenium3+PO+Yaml+ddt+Unittest  UI自动化测试框架

 

编写用例方法

1 testinfo:
 2       - id: test_login001
 3         title: 登录测试
 4         info: 打开抽屉首页
 5 testcase:
 6       - element_info: login-link-a
 7         find_type: ID
 8         operate_type: click
 9         info: 打开登录对话框
10       - element_info: mobile
11         find_type: ID
12         operate_type: send_keys
13         info: 输入手机号
14       - element_info: mbpwd
15         find_type: ID
16         operate_type: send_keys
17         info: 输入密码
18       - element_info: //input[@class='keeplogin']
19         find_type: XPATH
20         operate_type: click
21         info: 单击取消自动登录单选框
22       - element_info: //span[text()='登录']
23         find_type: XPATH
24         operate_type: click
25         info: 单击登录按钮
26       - element_info: userProNick
27         find_type: ID
28         operate_type: perform
29         info: 鼠标悬停账户菜单
30       - element_info: //a[@class='logout']
31         find_type: XPATH
32         operate_type: click
33         info: 选择退出
34 check:
35       - element_info: //div[@class='box-mobilelogin']/div[1]/span
36         find_type: XPATH
37         info: 检查输入手机号或密码,登录异常提示
38       - element_info: userProNick
39         find_type: ID
40         info: 成功登录
41       - element_info: reg-link-a
42         find_type: ID
43         info: 检查退出登录是否成功

login.yaml
login.yaml

分类:

技术点:

相关文章: