作业(重要)
关注浏览器环境,今天作业用 谷歌和火狐浏览器分别做,IE就算了。注意课堂上说的定位器优先使用顺序。
selenium和appium不一样,xpath万金油是次要与css选择器,主要是因为兼容性问题,不同浏览器加载入可能不一样。
尽量用ID,name,link,css选择器,作业内容如下:
- 打开testerhome
- 打开testerhome并点击置顶帖
- 使用显式等待
- 打开testerhome并搜索appium
- 使用ID,name,link,className,css,xpath定位器一样定位一个。
- 更换其他的浏览器(火狐浏览器)在做一次,主要是为了解决环境,有兴趣的可以火狐那边不复制代码,重找几个定位器的点。
扩展内容(优先上面的):
- 写5个以上不同数据格式的断言例子,包含In , ==,布尔判断,反向条件。
这个中途会有答案。
Pycharm
驱动进行匹配
虚拟环境使用和规则。
如何前往目录
模块各司其职,temp用来不用单元测试框架写拆解工程代码调式,不提交,test_case存放代码。
单元测试框架
pytest在OOP方面的规则,往上约定 模块名称,往下约定类名称和类下面函数名称
pytest的三大类断言和条件反向断言布尔 和技巧 在代码那边还讲了断言类型的方式
unittest使用和约定(学生要求的)
selemnium 基础API
拉起浏览器环节的异常代码处理 和 判断断言失败的异常代码处理 分别用什么。
浏览器当前源码 self.driver.page_source()
浏览器当前页面 self.driver.current_url()
send_keys(“”) sumbit() click()
element.size #尺寸 读取dict
隐式等待 (总超时的时长15) 12 每次间隔100ms之内,在self.driver生命周期内 全局有效
显示等待(poll 轮询时间 0.5)12 用于toast和全部定位或者一些有限生命周期内的元素
定位器 除了tag_name以外的定位方式
计算机科学&通用技术
OOP讲解 OOP的属性
self.driver的self是类绑定状态,形参列表的self是成员函数判断在哪个类里面
什么是别名和变量对象
self.driver引用后面对象是P和M的差别。
课堂中途代码演练
传送门帖子
完整代码 已经给了鸣人老师
工程结构
主体是不变的。
project名
util(工具类模块)
init.py <--提升文件夹到模块
common.py (selenium工具类)
Base.py(工具的基础类)
...其他省略
Conf(配置类模块)
init.py <--提升文件夹到模块
config.ini (目前处理驱动和网站地址等)--书架功能
setting.py(处理文件常量和路径拼接) --服务于testcase文件夹
tools(驱动文件夹) 拉起驱动时有这个不用配置环境变量了,给别人立即给用。
chromedriver.exe
geckodriver.exe
test_log(预留的日志文件夹)
screen(预留的截图文件夹)
test_case(业务代码测试用例)
init.py
testLogin.py (第一个测试用例文件,名字先自己取)
test_data(数据驱动文件夹)
init.py
data.xlsx(核心配置)
browser.yaml (配置测试信息)
run.py -入口函数 把testcase文件夹套件化处理(testsuite)
流程路径
util\\Base基础 --> util\\common --> test_case\\业务代码 --> run.py 启动(现在是第一层)
util(处理封装webdriver,日志,报告等) --> testcase\\业务代码(test开头*.py)