作者文章归档:泽恩

Selenium实战丨总结


PO模式如同介绍所说的,只是一种测试思路,将自动化分层,实现数据、步骤、脚本分离。减少代码冗余。

但个人感觉,在写步骤的话,很难实现快捷的完成步骤填写。比如我写一个测试用例,我就要对应的100*N的def函数,这样就无法实现我所想要自动化功能测试,不仅是维护或者进行自动化测试,需要的成本代价大,所以建议的话,是知道并理解思路就可以了。

所以就不进行后续补充测试用例以及测试了。

下一步是自动化接口测试的教程,会基于潘赛飞老师(友链)的项目进行自动化接口测试

Read more

Selenium实战丨第一个测试报告


有了测试用例,但是以后多了,我们需要一个脚本,可以一次性执行所有测试用例,unittest提供了该方法,我们需要从网上下载一个HTTPTestRunner的python文件,放置于Common文件夹中。

以下是启动脚本

Common/test.py

import unittest
from time import strftime, localtime, time
from Common import HTMLTestRunner
from Common.get_function import get_project_path

if __name__ == '__main__':
    #

Read more

Selenium实战丨第一个PageObject


因为飞猪使用selenium需要登录,过于繁琐,所以我将网站更改为携程网。只是一个简单的测试,确保我们PageObject流程能够正常走通。

以下为代码

PageObject/search_ticket.py

from Base.base_function import Base
from Common.get_function import get_project_path
from Common.Excle import load_excle


class Search_Air_Ticket(Base):

    def test_data(self):
        self.da

Read more

Selenium实战丨base层的配置


# 2020-8-10

进行了更新以及修改一些方法

增加了日志功能

 

其实这几天空下来,一直在想我该用什么方法去写Base层的配置。

也去B站上看了几个PO模式。他们大都是简单举例,以及讨论设计思路。大都是基于面对对象写的。然后用继承去使用。

好了,上代码吧,以下代码是根据个人想法所写,不一定要参考博主的,你可以采用你自己喜欢的方式去写。主要是二次封装为个人使用,所以不讲究格式等写法。怎么简单怎么来吧。以下为个人常用的四个定位法以及发送参数、点击和执行JavaScript语法

Base/base_function.py

from selenium import webdriver
from 

Read more

Selenium实战丨Common层的配置


一、获取路径以及地址

我们需要一个获取项目路径,以方便后续使用

PS:接下来所有代码行中的第一行为文件位置以及文件名字

Common/get_function.py
import os

def get_project_path():
    """
    :return:返回项目路径
    """
    return os.path.split(os.path.split(os.path.realpath(__file__))[0])[0]

if __name__ == "__main__":
    print(f"项目路径:{get_project_path()}")

选择一个网站并将

Read more

Selenium实战丨浅谈PO模式


一、创建文件夹

结构目录如下:

Selenium_Fight:
├─Base
├─Common
├─Data
├─Logs
├─PageObject
├─Reports
├─TestCases
└─config.ini

二、介绍结构

PO是Page Object的缩写。它的主要用途就是进行WebUI自动化测试。分为三层。

第一层即为对象库层。简单的理解就是将你常用的库、方法进行二次封装,建立属于你自己的“库”。

第二层即为操作层。将你所需要的操作存于此层。建立属于你自己的“轮子”。

第三层即为业务层。基于操作层的“轮子”将你所需要的业务

Read more

优化写文章功能丨记一次难受的修改


之前用的是开源项目的markdown,但出现了前端不能正常换行的原因,且源代码我无法去修改至想要的效果,最终将markdown改为ckeditor。可能功能少了点,但是效果至少不用我去使用br换行了。

但也出现了个小问题。就是本地能够正常展示ckeditor的功能框。服务器上则为光头一个。最终在试探性的试了collectstatic处理静态文件。成功了。果然是因为静态文件的问题。出现BUG还是需要有足够的耐心的呀。不然想写个文章都没心思

Read more

Selenium实战丨前言


一、前因

因为本身想进一步提高技术,另外一方面对自己技术的总结。接下来会开一个基于某一个网站的Selenium自动化测试,并非纯小白教程,没有基础的同学自重。

二、环境

系统:Windows10
编译器:VScode  (2020.8.10后以改为Pycharm)
Python:3.8.2
Selenium:3.141.0
测试框架:unittest
测试模式:PO模式
浏览器:谷歌(84.0.4147.105)
浏览器插件:ChroPath
浏览器工具:ChromeDriver(84.0.4147.30)


三、计划

因为本身需要学习其他方面的知识,以及构思测试计划、测试用例。时间可能需要一

Read more