selenium03

第五天 整合多个脚本,封装公共模块,数据库,数据分离,打印日志
第六天 logging日志模块,日志信息优化,截图,用例批量执行,补充优化,定时任务


实战演练 (ecshop项目)


1.项目环境搭建:

    1.解压xapmm到C盘根目录,打开C:\xampp\xampp-control.exe,启动Apache和MySQL服务

    2.如果Apache服务启动失败,修改C:\xampp\apache\conf\httpd.conf 里面的端口(默认为80,假设改为8000),
        修改C:\xampp\apache\conf\extra\httpd-ssl.conf 里面的端口(默认443,假设改为4433)

    3.如果MySQL服务启动失败,修改C:\xampp\mysql\bin\my.ini 里面的端口(默认3306)

    4.将upload.zip解压后的文件夹改名为ecshop,移动到C:\xampp\htdocs 里面。

    5.查看本机IP(假如为192.168.0.110),浏览器打开 192.168.0.110:8000/ecshop,根据页面提示安装即可

    6.安装时注意:数据库搜一下选择test后覆盖,数据库用户名默认root,密码默认为空,页面底部注意安装测试数据

    7.连接mysql时,如果报1130错误,需要在C:\xampp\mysql\bin\my.ini 里面,
        [mysqld]下面增加一句话:skip-grant-tables

        如果报1045-Access denied for user 'root'@'localhost'错误,需要打开DOS窗口,切换到C:\xampp\mysql\bin,
        先输入mysql -u root -p或mysql -uroot登录,
        再输入grant all privileges on *.* to 'root'@'%' identified by '123456';  表示可以给所有ip都设定root登陆了,
            其中%也可替换成本机ip或localhost,123456也可以改成别的密码
        最后输入flush privileges; 刷新授权,之后重启mysql服务(win需要到任务器才能彻底关闭)    

        https://blog.csdn.net/qq_42036869/article/details/84671466
        https://blog.csdn.net/tspangle/article/details/37761147

2.线性化脚本
    注意安装mysql-connector
    
3.封装相同步骤


4.测试数据与脚本分离


5.创建工程(引入PO设计模式)

    PO设计模式,全称是Page Object,是一种自动化测试的设计模式,它将元素定位、业务操作和测试用例分开。
        这样的好处是,当页面元素发生变化,只需要修改存放改页面元素的类即可,大大减少了脚本的维护成本。
        po是web自动化测试目前最佳的一种实践方式,简单说就是类和类之间的封装和调用,
        包括基础类、页面类、用例层等部分。


    基础层:点击、输入等操作加入一些等待、日志输入、截图等操作,方便以后查看脚本的运行情况及问题排查
    对象逻辑层:用于存放页面元素定位和存放一些封装好对功能用例模块
    业务层:用于存放真正的测试用例的操作部分


    ecshop_testPageObject(可以将此目录设为Sources Root,导包更方便)

        baseView            基础层:封装所有页面的公共方法
            baseView.py    

        pageViews            对象逻辑层:注意,是以html表单划分页面
            loginPage.py        封装登录的操作
            menuPage.py            封装菜单页面的操作
            addDuobaoPage.py    封装夺宝活动的操作

        testCases            测试用例
            test_01_Duobao.py    夺宝奇兵活动    

        common                公共模块    
            myDB.py             数据库操作
            commonFunc.py       读取数据

        config                数据配置
            urlData.yaml            访问地址
            testData.csv            测试数据(登录信息、测试数据和预期结果)
            log.conf                配置日志信息

        logs                日志相关
            run.log                    记录脚本运行日志

        screenshot            报错截图    

        reports                测试报告

        runAllCases.py        运行所有用例的主程序

        HTMLTestRunner.py    生成测试报告的文件(一般放在python/lib下面)

    注:
        1.注意runAllCases里面testCases的路径,报告名称等
        2.HTMLTestRunner.py可放在与runAllCases在同一位置

6.工程优化

    E 脚本出错,
    F 断言失败, 
    . 运行成功

    注意:unittest单元测试框架中,有时候需要人为添加失败断言(如登录失败、元素定位失败)
        if xxx == False:
            self.assertEqual(1,2,msg="登录失败")

如果报错,注意路径使用绝对路径,可慢慢导入自定义模块调试
    


7.定时任务
    jenkins:
        1.DOS窗口进入工程目录执行:python runAllCases.py
        2.jenkins日程表:0 20 * * *
        3.jenkins批处理命令:
                D:
                cd workspace\ecshop_testPageObject
                python runAllCases.py

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值