知名产品全流程实战2

实战项目

雪球搜索 https://xueqiu.com/

实战内容

  • 熟悉业务
  • web自动化
  • 持续集成
// 通过递归调用,获取元素下所有的文本内容,然后拼接在一起
bot.dom.getVisibleText = function(elem) {
  var lines = [];
 
  if (bot.dom.IS_SHADOW_DOM_ENABLED) {
    bot.dom.appendVisibleTextLinesFromElementInComposedDom_(elem, lines);
  } else {
    bot.dom.appendVisibleTextLinesFromElement_(elem, lines);
  }
  return bot.dom.concatenateCleanedLines_(lines);
};

作业

使用po设计模式完成雪球搜索页面UI自动化,并使用Jenkins做持续集成,最终把allure报告截图回帖


优点

  1. 使用了标准的PO设计模式、业务逻辑和页面对象分离的非常清楚
  2. 添加了log打印,是规范标准的工程化代码必备的一个条件
  3. 使用了Faker 模拟测试数据
  4. 使用requirements完成环境管理,直接使用pip install -r requirement.txt完成环境依赖的安装

优化点

  1. 项目结构比较乱,按业务拆分清楚、命名要规范,太多demo
  2. log 的配置可以抽离到utils 中,不要和basepage 耦合在一起,basepage 只负责和 UI自动化测试封装相关的内容,# - 将log模块抽离出来,以后如果有UI 自动化或接口自动化或其他的业务线,都可以共用
  3. 元素定位的变量如果使用较多,可以抽离到文件中或者抽离到类变量中,提高代码的复用性
  4. 命名不规范,Python项目的文件名都是小写英文单词,下划线间隔命名
  5. 日志级别,只有重要的,和业务相关的,才用info级别,其他使用debug。
  6. Utils 不要和测试用例耦合在一起,Utils 是一个独立的模块,utils 可以给多个业务线进行使用,所以层级应该比较高
  7. data存放的是测试数据信息,log和测试数据没有关系,单另存放
  8. 强制等待尽量不要使用,优化为显式等待或隐式等待
  9. 变量名不要太随意,要有含义和意义