一)框架目录的结构

二)config包当中的config.ini文件主要是用来存项目的绝对路径,是为了后续跑用例和生成测试报告做准备
然后目前的配置文件大都会用yaml,ini,excel,还有.py也就是python文件来进行管理这里用的是ini文件。

三)config包当中的globalconfig文件主要是用来生成项目的路径,测试用例,测试报告的路径
其中调用了ReadConfigIni这个类来读取ini格式的文件。

四)Data.xlsx主要是用来存放项目的url,账号和密码的
通过excel来存放,可以增加数据的稳定性,后面会通过封装读取excel文档的工具类,来对excel文档中的数据进行读取

五)public包中pages包中的BaseTestCase模块主要是用来放基类的
当中并且通过set_driver传入一个driver对象来进行设置driver对象,这其实就是单例设计模式的体现然后通过get_driver来拿driver,
所以只要继承BaseTestCase这个基类,就可以拿到这个类当中的一切类方法。然后定位页面元素
用find_element这个类方法来进行封装,可以使得传入的参数是一个
元组,然后这里其实用到了Java当中的page object设计模式,也就是所谓的PO设计模式,使得页面
中的每一个控件都变成了对象的属性。



六)public包中pages包中的login模块主要封装了项目的登录,首先创建一个driver
对象,然后通过调用set_driver方法把driver传给基类,这个地方是最为关键的
地方,所以基类中的driver,其实就是这个地方传进去的,然后把driver对象赋值
变成了BaseTestCase这个基类的类变量也就是类的属性,所以后续基类当中的类方法
其实都是使用的这个login模块中创建的这个driver对象,这样的目的就是可以保证我们
的项目从头到尾都是使用的同一个driver对象,同一个driver指的就是打开的为同一个
chrome浏览器。

七)这里封装了一个读取excel的工具类
因为后续我们的项目的账号和密码都存在excel文档中去了,所以需要封装一个
读取excel的工具类,来读取账号和密码,其中用到了xlrd模块来读取。

八)Login_data模块中主要是读取excel然后返回url,账号,密码
get_password方法因为生成的数据是浮点数,所以用了int函数进行转换。

九)封装了一个发送邮件的工具类,值得注意的是这里用的是163的smtp服务器
这个代码是不适用QQ服务器的,而且pwd是163邮箱的授权码,不是密码
这个地方需要注意。

十)PageElement这个模块很为关键,这个PageElement类当中封装了所有页面的网页元素
这里其实就是用到了让一个项目中的所有元素定位和用例流程和最终的用例进行分层处理
这个设计有点像RF框架当中的三层封装设计模式:元素层,流程层和案例层,但是这样处理
有一个问题就是代码量会很多。但是优势也是非常明显的
优势如下:
1.让元素定位,流程,案例进行了分离
2.前端代码关于元素定位有改动可以随时进行处理,修改非常方便
3.让代码间的耦合性降低
4.降低代码的维护成本
5.代码的复用性高
6.采用标准的page object页面对象设计模式,符合现在主流ui自动化框架的标准搭配

十一)这里封装了一个工具类,主要是用来读取ini文件的
需要先在dos窗口用pip install configparser来安装configparser模块

十二)run模块中主要是用来加载和运行所有的用例,并且生成测试报告和发送测试报告。

十三)编写测试用例,后续有当前模块的测试用例就可以更新在当前这个模块中
然后进行断言。

最新文章

  1. 关于SubSonic3.0插件使用Json反序列化获得的实体进行更新操作时,只能执行添加而不能执行修改(编辑)操作的处理
  2. kmod编译找不到函数kmod_log
  3. jQuery中find和filter的区别
  4. word20161201
  5. Linux开发cocos2dx程序环境搭建
  6. UITextView 点return 隐藏键盘
  7. UVa 489 刽子手游戏
  8. ubuntu系统下安装gstreamer的ffmpeg支持
  9. C# 使用Sqlite 如何返回统计行数
  10. linux ar 命令的使用说明那个和例子[转]
  11. 随滚动条滚动的居中div
  12. 实用HTML5游戏资源
  13. Class 和 普通构造函数区别
  14. 使用Java API操作HDFS文件系统
  15. 使用 AWK 去掉文本文档中的空白行
  16. Git错误汇总
  17. Flask 键盘事件
  18. Windows10上强制Visual Studio以管理员身份运行
  19. 洛谷 P4475 巧克力王国 解题报告
  20. [php] thinkphp基于Http类 下载文件

热门文章

  1. linux--工具进阶
  2. 剑指offer-面试题47-礼物的最大价值-动态规划
  3. 将一个Head下的Line复制到另一个Head下(ef+linq)
  4. sqlserver数据库重启
  5. 吴裕雄--天生自然HADOOP操作实验学习笔记:hbase学生选课案例
  6. 请写一个java类,在任何时候都可以向它查询“你已经创建了多少个对象?”
  7. centos 7 安装npm
  8. Spark学习之路 (二十八)分布式图计算系统[转]
  9. python笔记09
  10. 嵊州D5T2 折纸 folding