首页 > 其他分享 >UI自动化测试

UI自动化测试

时间:2024-05-31 09:21:33浏览次数:12  
标签:Xpath 浏览器 driver selenium 选取 UI 测试 自动化 节点

selenium:通过脚本操作浏览器

pip install selenium

pip install

打开浏览器,下载驱动

通过webdriver_manager实现浏览器自动匹配驱动

  1. 步骤

    打开浏览器

    打开网页

    操作元素

    from selenium.webdriver.common.by import By
    from time import sleep
    from drivers import NewDriver
    
    
    driver = NewDriver().newDriver()
    #打开网页
    driver.get("http://www.baidu.com")
    #找到元素
    driver.find_element(By.ID, "kw").send_keys("布偶猫")
    driver.find_element(By.ID, "su").click
    
    sleep(30)
    
  2. 公司自动化组的操作流程

    手工测试组编写用例,交给自动化测试组,自动化测试组根据优先级进行测试,先做优先级高难度低的-->优先级低难度低-->优先级高难度高

    大多的操作是 输入,点击

    其他:拖动,滑动,双击

  3. 通过Xpath定位
  4. 如何断言

    通过页面的显示,进行断言。例:收藏一本书,则进入这本书的详情页,显示已收藏。

    一个操作一行代码。

  5. 问题:

    复杂的控件定位不到:

  6. Xpath

    XML Path Language XML控件定位语言

    绝对路径:

    ​ Xpath 中最直观的定位策略就是绝对路径。 以百度中的输入框和按钮为例,通过拷贝出来的 full Xpath:

    /html/body/div[2]/div/div/div/div/form/span/input

    相对路径

    除了绝对路径,Xpath 中更常用的方式是相对路径定位方法,以“//”开头(这个就相当于全局搜索)。

    表达式 说明 举例
    / 从根节点开始选取 /html/div/span
    // 从任意节点开始选取 //input
    . 选取当前节点
    .. 选取当前节点的父节点 //input/.. 会选取 input 的父节点
    @ 选取属性或者根据属性选取 //input[@data] 选取具备 data 属性的 input 元素 //@data 选取所有 data 属性

    *通配符,表示任意节点或任意属性

  7. 日期控件

    每个控件都要等他加载完成后,再操作

    加载:请求后端数据,还没渲染页面时

    怎么保证加载完成:

    修改日期中的年份

  8. 线性转封装思路
    相同步骤封装

    新建类,放入方法中,不可行

    selenium运行依靠driver

    把登录功能隔离时新建一个driver

    其他时刻又新建了driver,运行失败

  9. 用*实现解包操作:

    分解为2个参数

    Xpath可读性差,重命名

    改需求时不好维护,

    入参不好改变

  10. 具体实现

    POM:对page进行操作

    定义page中的方法和元素定位(属性)

    将driver定义到BasePage中

    然后继承basePage,获取操作的方法

    将操作(打开浏览器,点击,输入)分离出去,通过参数定义路径和输入

    其实我们可以通过传入driver和返回driver的方式

    实际上是将driver放入父类的构造函数中,新增Driver只需子类调用构造函数

    思想即:将所有基本操作和driver,登录浏览器等操作放入父类中,将具体操作步骤放入子类中。

  11. 使用Pytest将页面关联起来

    利用@Pytest.fixture(session)定义作用域

    在这个方法下,新增driver

    将这个方法名称写到需要连贯运行的页面中,让他们为一个driver,则会连续运行

  12. 分布式测试selenium grid

    分布式多台机器完成一个行为

    可以多台机器一起测,或者设置一个服务器的极限,当到了极限后,则换成另外的浏览器

    webUI很慢,需要用分布式

  13. selenium原理
  14. selenium grid 逻辑
  15. 步骤

启动jar包,设置主节点

另一台服务器下设置子节点

登录localhost:4444(默认端口号)可以看到子节点

command_executor指定hub主机

当当前一台主机运行不下去时,会自动采用另一台测试

grid当中driver的生成有grid生成,与原本定义方法不同

标签:Xpath,浏览器,driver,selenium,选取,UI,测试,自动化,节点
From: https://www.cnblogs.com/qbxyzzjw/p/18223790

相关文章

  • pip is configured with locations that require TLS/SSL, however the ssl module in
     [root@dsc1mydjango]#pip3installdjangopipisconfiguredwithlocationsthatrequireTLS/SSL,howeverthesslmoduleinPythonisnotavailable.CollectingdjangoRetrying(Retry(total=4,connect=None,read=None,redirect=None,status=None))after......
  • QtQuick实现图片查看器
    QtQuick实现图片查看器介绍图片查看器是非常值得新手入门QtQuick的项目,通过该项目,用户可以很快熟悉QML语法和资源文件存储,还可以使用通过操作文件夹实现多图像查看。实战首先打开QtCreator,创建QtQuick项目,我使用的是Qt6.5版本,但是其他版本应该也可以。我们先新建一个QML文件,......
  • DC-1靶机渗透测试过程(个人学习)
    ​DC-1靶场下载地址:DC:1~VulnHub攻击机kali的IP地址:192.168.37.129注意靶机和攻击机的环境配置要一致一、信息收集方法一:nmap扫描方法二:arp-scan-l使用 arp-scan-l 扫描该网段内其他的IP地址效率相对快一些扫描后得到靶机的IP地址为:192.168.37.133使用nmap......
  • SwiftUI中AsyncImage的使用(一个高效的异步下载图片组件)
    iOS开发者经常会遇到需要在应用中显示网络图像的场景,无论是获取和显示用户头像,展示产品图像,等等。在原来的UIKit中,如果我们要用系统的API还是稍微有点麻烦,很多开发的朋友都选择了第三方的框架去处理网络图片的请求缓存等等。AsyncImage是SwiftUI中一个强大的功能,它简化了在......
  • 测试λ 函数的一种方法:通过全局 λ 函数表,保存所有λ 函数
    下面的方式,把任意的局部代码包装在λ函数里,就地调用,同时把λ函数保存到全局表,在外部访问。#include<iostream>#include<vector>#include<functional>#include<map>#include<any>//全局的map,用于保存foo函数内部的lambda函数std::map<std::string,std::any>......
  • java单元测试:spring测试模块
    Spring测试模块为开发者提供了一套强大的工具,用于在Spring应用中进行单元测试、集成测试和端到端测试。1.测试框架集成Spring测试模块与多个测试框架集成,最常用的是JUnit5和TestNG。JUnit5集成使用@ExtendWith(SpringExtension.class)注解来启用Spring测......
  • 宝塔7.9.7绿色版本,个人使用测试
    警告本破解版仅可用于个人使用、学习!若发现其他使用用途,本人及插件制作者不承担任何责任请支持正版安装脚本1,Centos安装命令(默认安装是7.8.0直接在线升级7.9.7):yuminstall-ywget&&wget-Oinstall.shhttp://io.bt.sy/install/install_6.0.sh&&shinstall.sh2,......
  • uoj项目部署的学习实践和基于JUnit进行的项目测试
    基于JUnit进行的项目测试对不同功能点进行测试:检测忘记密码功能、注册功能能否正常使用脚本文件:registerTest.java1.检测忘记密码功能。事先注册好一个账号用于测试测试步骤:输入账号输入电子邮箱输入验证码1)用例标题:验证码错误情况测试数据:账号2021127电子邮箱2848250......
  • 基于JUnit进行的项目测试
    基于JUnit进行的项目测试对不同功能点进行测试:检测忘记密码功能、注册功能能否正常使用脚本文件:registerTest.java1.检测忘记密码功能。事先注册好一个账号用于测试测试步骤:输入账号输入电子邮箱输入验证码1)用例标题:验证码错误情况测试数据:账号2021127电子邮箱2848250......
  • vue3 require动态加载图片及动态加载svg图
    以下是本地图片及引用本地的svg图报错//这里是获取本地的png图片报错<divclass="flex-itemsswiper-item"v-for="(item,index)inlist":key="index"><imgclass="brand-img":src="require(item.url)"/></......