WEB自动化测试的理解

什么时候可以做UI自动化测试?

  1. 业务流程不频繁改动
  2. UI元素不频繁的改动
  3. 需要频繁回归的场景
  4. 核心场景等等

selenium简介

官方网站:https://www.selenium.dev/
适用于web浏览器测试的工具
支持的浏览器包括:IE Firefox safari chrome edge等
使用简单,可使用java,python等多种语言编写
主要有三个工具构成:Webdriver IDE Grid

chromedriver的下载
地址:http://chromedriver.storage.googleapis.com/index.html
查看自己chrome版本号
在这里插入图片描述
在上面的地址里面找到自己的压缩包点击进行下载
在这里插入图片描述
然后对zip文件进行解压缩
之后,配置环境变量,将解压缩后的文件地址配置到path环境变量即可

自动化测试用例结构分析

标准用例结构:
用例标题
前提条件
用例步骤
预期结果
实际结果
我们可以统称为五大要素,功能要素这几个可以满足测试了,那么自动化测试的用例结构呢
我们可以这样总结:

用例标题:测试包、文件、类、方法名称 用例的唯一标识
前提条件:setup、setup_class(Pytest);BeforeEach、BeforeAll;测试用例前的准备动作,比如读取数据或者driver的初始化
用例步骤:测试方法内的代码逻辑,测试用例具体的步骤行为
预期结果:assert实际结果预期结果; 断言,印证用例是否执行成功
实际结果:assert实际结果
预期结果; 断言,印证用例是否执行成功
后置动作: teardown、teardown_class @AfterEach、@AfterAll(JUnit);脏数据清理、关闭driver进程

web 浏览器控制

打开网页
刷新
回退
浏览器最大化
浏览器最小化

from selenium import webdriver
import time
driver = webdriver.Chrome()

class TestWindow:
    def test_window():
        #打开网站
        driver.get("https://www.baidu.com/")
        time.sleep(2)
        #刷新浏览器
        driver.refresh()
        time.sleep(2)
        #退回
        driver.back()
        time.sleep(2)
        #最大化
        driver.maximize_window()
        time.sleep(2)
        #最小化
        driver.minimize_window()
        time.sleep(2)


if __name__ == '__main__':
    TestWindow.test_window()

自动化定位策略

先看定位方式包含
通用场景:通用Web定位方式,js定位
特殊场景:弹框、日期控件、文件上传、其他场景等等
通用的Web定位方式
在这里插入图片描述

选择定位器通用原则

1、与研发约定的属性优先
2、身份属性id,name
3、复杂场景使用组合定位,比如xpath,css,父子定位等等
4、js定位

浏览器复用

在docs命令中开启调试,在此之前,需要把chrome关掉,使用命令
chrome --remote-debugging -port=9222
报:
C:\Users\jinlai>chrome --remote-debugging -port=9222
‘chrome’ 不是内部或外部命令,也不是可运行的程序
或批处理文件。
需要配置环境变量或者也不用配置
找到桌面快捷方式,右键,点击打开文件所在位置,在下图位置处输入 cmd 然后回车
在这里插入图片描述
出来dos窗口,输入chrome --remote-debugging -port=9222,系统会自动启动一个浏览器窗口
在这里插入图片描述

最后直接上一串代码加深理解和记忆

import time

import allure
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By

class TestGXLiuCheng:
    #执行测试用例之前的操作,有多少测试用例就执行多少次
    def setup_method(self, method):
        options = Options()
        # 和浏览器打开的调试窗口进行通信
        # 浏览器要使用Chrome
        options.debugger_address = "localhost:9333"
        self.driver = webdriver.Chrome(options = options)


    def test_login(self):
        """
        测试步骤
        1、打开对应网址
        2、点击cas登录
        3、点击用户名输入框,输入用户名
        4、点击密码输入框,输入密码
        5、点击登录
        6、断言
        :return:
        """
        # 配置隐式等待时间,在查找元素的过程中,如果出现noSuchElementException,不会直接报错,而是轮询继续查找,直到超时5s为止,隐式等待是全局的
        self.driver.implicitly_wait(10)
        self.driver.get("这里输入对应网址即可)

        #浏览器最大化
        self.driver.maximize_window()
        #点击cas登录
        self.driver.find_element(By.XPATH, "//*[text()='Cas登录']").click()
        #点击用户名输入框
        self.driver.find_element(By.CSS_SELECTOR, ".ant-input").send_keys("1234567")
        #点击输入密码输入框
        self.driver.find_element(By.XPATH, "//input[@type='password']").send_keys("9876543210")
        #点击登录
        self.driver.find_element(By.CSS_SELECTOR, ".ant-btn").click()
        #断言获取对象
        res_text = self.driver.find_element(By.CSS_SELECTOR, ".name").text
        print(res_text)
        assert "供需流程系统" in res_text
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木土雨成小小测试员

你的鼓励将是我最大的创作动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值