上海 selenium 进阶课 0722 (回顾点&作业传送门&下期内容)

0722回顾

  • 1.unittest后续部分
    unittest执行条件以及需要类继承unittest.TestCase
    unittest.skip系列跳过的装饰器

  • 2.工程结构&设计模式
    这部分装饰器最主要使用的是skipIf(条件表达式,msg)
    工程建设请看课程作业内的结构图

    Path拼接 import os
    project_path =os.path.dirname(os.path.abspath(“.”))
    当前执行文件的上级目录 os.path.abspath(os.path.dirname(file)) <–这里file是魔法前后二个下划线的。markdown把他变成这个了,注意。

    设计模式 二层,pageObject的二种介绍,用第一种就是课程上讲的。
    from [path/filename] import * path/filename里面所有属性 如果不是*就是指向某个类(所以导入py文件里面同做1件事的函数最好都需要包装到1个类里来管理)
    这个类里面全局变量和类以外的函数可以直接用。
    from [path] import filename 就是导入的整个文件,里面的全局变量和函数 需要filename.全局变量引用 filename.函数调用。

  • 3.数据驱动
    介绍几种数据文件格式
    封装读取ini文件,用到构造函数
    yaml 需要import yaml <—这个课堂上没有讲
    课堂上提到JSON格式和读取excel的openpyxl可以预习下,读取excel版本需要2007以上。

  • 4.路径拼接
    不同的测试条件路径在testcase文件目录下test_.py
    test_
    .py最终是定义到(0707)suite = unittest.defaultTestLoader.discover(TestDir,pattern=‘test_*.py’)
    pattern里面也是这样写的,*代表模糊匹配。

  • 5.API封装
    在设计模式后简单介绍了webdriver
    from selenium import webdriver
    webdriver的API封装
    主要看课程作业里面的传送门
    代码要有几点重要思维
    1 知道代码具体执行的步骤
    2 代码在什么文件夹内,什么文件夹和什么文件夹(模块和模块之间)做什么样的交互。
    3 不同的函数有微小差异,都封装成二个,不适合直接对函数内操作,函数封装好的功能就是暴露在外部的接口。
    4 函数之间的拼接和解耦。解耦和顺序具体在设计模式和工程文件夹展开那边提到了
    课堂上有个做了一半的作业,后面赶进度,作业如下:

#前往 http://v.baidu.com/
#点击登录link 定位器根据选择来做。
#弹出alert框  <---必须要先到这个区域才能拿到下面的id
username的id:TANGRAM__PSP_11__userName
password的id:TANGRAM__PSP_11__password
#获取password的get_attribute("type")属性

就和定位器你手指按在键盘数字"7"上面,但是实际上要先判断是不是你自己的电脑键盘,如果是其他人的,那就不满足预期。

课程作业

0721作业传送门
3个网站需要3个文件,放在testcase/下面起名test_*.py

下次课程

  • 核心完成封装的api讲解
  • 读取excel需要安装openpyxl,excel版本>=2007
  • 日志系统
  • 生成报告
  • 装饰器 -具体看时间,也可以后续文档提供。
    课程下周杀青后,会列1个完整的集合贴。