一、po设计模式:(pydom)
做法:
1、以页面为单位独立建模;
2、隐藏实现细节;
3、本质是面向接口编程;
优点:
1、减少重复find click样板代码;
2、易读性提高;
3、页面修改不影响测试用例;
三大模块:
1、基础类:封装基础类,可以包含webdriver实例的属性,如驱动的定义、对元素定位的二次封装;
2、页面类:每一个页面类(page)都要继承基础类,并通过驱动(driver)来管理本业的元素,并将page类中需要用到的操作都封装成一个个方法;
3、用例类:调用相应的page类来实现相应的测试步骤,最后是用例的断言;
6个基本原则:
1、方法意义:
a、用公共发方法代表UI所提供的功能;
b、方法应该返回其他的PageObject或者返回用于断言的数据;
c、同样的行为不同的结果可以建模为不同的方法;
d、不要在方法内加断言;
2、字段意义:
a、不要暴露页面内的元素给外部;
b、不要建模UI内的所有元素,用到什么就对什么建模;
basePage的封装:
1、实现通用的page方法,对常用自动化行为做封装;
2、管理各种Driver;
3、减少每个page对appium、selenium等库的太多依赖;
自动化行为封装:
1、异常弹框处理:广告、好评、升级、tips等;(不知道什么时候会弹)
2、通用自动化能力封装;
编写用例顺序:
1、根据界面封装page类和方法,实现可以为空;
2、编写用例,不断重构明确page里方法的入参和返回值;
3、开始实现page内的方法;
4、调试;
5、整体类似TDD风格;
基于POM的用例组织结构:
1、page:完成对页面的封装;
2、driver:完成对web、Android、iOS、接口的驱动(需要达到隔离平台的作用);
3、testcase:条用各类page完成业务流程并进行断言;
4、data:配置文件及数据驱动;
5、utils:其他便捷的工具或者功能的封装;
测试用例管理:
1、用例组织结构:
a、使用package管理业务模块;
b、使用class管理业务对象、使用method完成业务具体行为;
2、数据驱动:测试数据、测试步骤、测试断言;
3、测试用例:
a、使用testcase完成测试步骤的定义;
b、使用assertion完成业务正确性校验;
4、持续集成:使用jenkins完成持续集成;
Hybrid测试流程:
1、首先进去带有WebView的页面;
2、使用Contexts API寻找WebView;
3、使用Contexts切换到WebView;
4、使用CSS等Web定位方法;
5、使用Context重回native;
断言内容:
1、元素是否存在:find_elements;
2、元素属性正确性:get_attribute;
3、Hamcrest断言:基于更灵活的Matchers断言方式;
allure测试报告的使用
1、安装allure并配置环境变量,通过allure --version查看是否安装配置成功;
2、在pycharm中安装pytest_allure;
3、执行测试用例将结果保存到中间文件中:pytest testcase/test_pytest_allure/test_calc.py --alluredir allure-report
4、以html形式查看测试报告:allure serve allure-report
5、TODO:Jenkins中集成allure