软件测试— web自动化项目实操

 

1 初始化项目

1.1新建项目,创建目录结构

             软件测试— web自动化项目实操

1.2安装依赖包

  • 安装sekenium包
  • 安装parameterized包
  • 添加HTMLTestRunner
  • 查看已安装的依赖包:点击File—Settings—Project webAutoTest—Project Interpreter
 

2 初始化代码(通过公用方法进行封装,减少子类代码)

2.1封装驱动工具类:对浏览器驱动对象经常使用到的操作封装成一个工具类,方便代码的调用。一般包含1获取浏览器驱动对象并完成一个初始化的操作和 2关闭浏览器。

2.1.1具体步骤

from selenium import webdriver

 

# 1 定义驱动工具类 

class DriverUtil:       //通过class关键字,driver驱动

_driver = None          //首先定义变量,为空

 

# 2 获取浏览器驱动对象,并完成初始化操作 (get_deriver方法)

@classmethod

def get_driver(cls):

    if cls._driver is None:

       cls._driver=webdriver.Chrome()     //获取驱动对象,如果cls._driver为空,创建Chrome浏览器

       cls._driver=maximize.window()     //完成初始化操作,1实现浏览器窗口最大化 2定义隐私等待(30s) 3打开项目首页 4返回浏览器驱动对象

       cls._driver=implicitly_wait(30)

       cls._driver.get("http://localhost")

    return cls._driver

 

# 3 关闭驱动对象

@classmethod

def quit_driver(cls):

    if cls._driver:

       cls._driver.quit()    //如果cls._driver不为空,关闭驱动对象

       cls._driver = None   //设置为空,避免二次出错

2.2封装PO基类,定义BasePage和BaseHandle

2.2.1具体步骤

# 基类定义到base目录下

软件测试— web自动化项目实操

 

 

 

# 导包

from utils import DriverUtil

 

# 1 对象库层—基类封装

class BasePage:                                   //定义一个BasePage的类

      def _init_(self):                          //先定义,重写init方法

          self.driver = DriverUtil.get_driver   //在方法里面定义成一个属性,获取driver对象

 

      #元素定位

      def find_element(self,location):                                  //location该参数为元素的类型

      return self.driver.find_element(location[0],location[1])    //#1 创建了driver对象后就可以直接使用,最终将element对象返回。

                                                                 // 该方法需要传递两个参数,1元素定位的类型(从第一个数据中获取),2元素定位的内容

# 2 操作层—基类封装

class BaseHandle:            //定义一个类

 

#完成一个方法的封装

#元素输入操作

def input_text(self,element,text):    //1方法名称定义成input_text,在方法里2定义参(通过element对象传进来,text具体要输出的内容)

    element.clear()

    element.send_keys(text)

 

 

3 实际项目

软件测试— web自动化项目实操

 

 

 

 

 

 3 实际项目

 

软件测试— web自动化项目实操

上一篇:POSTMAN中使用GET请求URL中出现中文,请求出现非法参数异常问题


下一篇:css选择器优先级如何计算