UI自动化测试01

UI自动化测试

使用UI自动化测试就是用代码模拟人的操作(点击、输入、滑动、下拉选择、浏览)

分类

  • web 网站

    QTP、selenium

  • pc端软件

    用的少

  • 移动端

    appium

一、selenium

用于完成web网页自动化测试,

selenium(化学元素:硒), 不得不提QTP的工具,2004年左右开始出现,qtp(汞)收费的,不开源,所以就使用成本比较高,

硒可以解汞的毒

  • selenium1.0
  • selenium2.0
  • selenium3.0

2016年出现的这个版本,

selenium IDE:提供了将操作转换为代码的功能,会记录人的动作,转换为selenium代码

selenium webdriver: 提供了控制浏览器执行的功能

selenium Grid: 提供了分布式执行测试用例的能力

注意:

谷歌、火狐、edge、ie(已经被放弃)、欧朋) 3.0的时候浏览器都由各自浏览器厂商开发

  • selenium4.0

提供了相对定位的功能

selenium Grid:支持k8s上部署

二、安装

1. selenium其实虽然称之为工具,但是实际是python中一个库

pip install selenium==3.14

2.安装浏览器

谷歌、火狐、edge

3.下载浏览器驱动

根据浏览器版本下载 edge(https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/)

谷歌的驱动下载网站打不开,所以要使用淘宝的备用地址

创建D:\tools\driver 将驱动放到这个路径中去

要将这个路径添加到环境变量path 中 D:\tools\driver , 添加之后需要重启电脑 才能生效

三、前端

html:页面显示的内容

css:进行样式布局的

js:让页面元素动起来

<!-- 声明写的是一个html代码 -->
<!-- 
 1.一个尖括号是一个标签
 2.最外层的是html标签
 3.在页面中其实是一个大标签套小标签的过程
 -->
<!DOCTYPE html>
<html>
    <head>
        <!-- 字符集 -->
        <meta charset="utf-8">
        <!-- 网页的标题 -->
        <title>你们最喜欢的小视频网站</title>
    </head>
    <body>
        <!-- <br> 是换行标签 -->
        明天是谁唱歌<br>
        <!--分割线 -->
        <hr >
        周六的作业会特别多,然后会很难做,是骗你的!!!<br>
        <!-- 字体标签 
        size:范围1-7 字体由小到大
        color:设置字体颜色
        -->
        <font size="7" color="blue">周末不能请假,我要上自习</font><br>
        <font size="6" color="blue">周末不能请假,我要上自习</font><br>
        <font size="5" color="blue">周末不能请假,我要上自习</font><br>
        <font size="4" color="blue">周末不能请假,我要上自习</font><br>
        <font size="3" color="blue">周末不能请假,我要上自习</font><br>
        <font size="2" color="blue">周末不能请假,我要上自习</font><br>
        <font size="1" color="blue">周末不能请假,我要上自习</font><br>
        <!-- 
        img 标签可以引入图片
        src:图片路径
        height:图片的高
        width:图片的宽
         -->
        <img src="img/5.jpg" height="500px" width="1000px" >
    </body>
</html>

文本标签

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>文本标签</title>
    </head>
    <body>
        <!-- 标题标签
         h1-h6 
         会自动换行
         -->
        <h1>张无忌</h1>
        <h2>张无忌</h2>
        <h3>张无忌</h3>
        <h4>张无忌</h4>
        <h5>张无忌</h5>
        <h6>张无忌</h6>
        <!-- 
         分割线
         width 宽度
         align : 默认居中
                可设置左对齐或者右对齐
         -->
        <hr width="30%" align="left">
        <!-- p 标签是段落标签,会自动换行 -->
        <p>Windows 一直是世界创新的舞台。它是全球企业的基石,助力众多蓬勃发展的初创公司变得家喻户晓。</p>网络在
        <!--加粗倾斜-->
        <b>加粗</b>
        <i>倾斜</i>
        <u>倾斜</u>
        <br>
        <del>助力众多蓬勃发展</del>
        <br>
        <!--字体标签font
        color:字体颜色
        size:从1-7,由小到大
        -->
        <font color="#8ACD5A" size="7" face="宋体">暮霭程程楚天阔</font>
    </body>
</html>

表格标签

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
        <!-- 
         tr:代表一行
         th:代表每一个表头单元格,会自动加粗加黑
         td:一个普通的单元格
         -->
        <table border="2px" cellspacing="0px" background="img/5.jpg">
            <tr>
                <!-- Ctrl + shirt + R -->
                <th>姓名</th>
                <th>年龄</th>
                <th>性别</th>
                <th>成绩</th>
            </tr>
            <tr>
                <td>马保国</td>
                <td>71</td>
                <td rowspan="2"></td>
                <td>49</td>
            </tr>
            <tr>
                <td>雷雷</td>
                <td>38</td>
                <td>55</td>
            </tr>
        </table>
    </body>
</html>

多媒体标签和超链接标签

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
        <!-- 图片 
        width:宽
        height:高
        title:鼠标悬停时的提示信息
        alt:图片地址错误时的信息
        -->
        <img src="./img/6.jpg" width="500px" height="200px" title="你喜欢吗" alt="糟糕,找不到了!!!">
        <!-- 音频 -->
        <embed src="【蔡徐坤】能坚持看完!不笑抽了不算.mp3" width="200px" height="50px">
        <embed src="鸡你太美原曲.mp4"><br>
        <!-- 超链接 
        target=
            "_blank" 会打开一个新的标签页
        -->
        <a href="http://www.baidu.com">百度一下我就知道</a><br>
        <a href="new_file01.html" target="_blank">点我有惊喜</a>
        <a href="鸡你太美原曲.mp4">坤坤</a>
    </body>
</html>

列表标签

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
        <!-- 无序列表 -->
        <ul type="square">
            <li>张三</li>
            <li>李四</li>
            <li>王五</li>
            <li>赵六</li>
        </ul>
        <ul>
            <li>张三</li>
            <li>李四</li>
            <li>王五</li>
            <li>赵六</li>
        </ul>
        <!-- 有序列表 -->
        <ol type="I">
            <li>张三</li>
            <li>李四</li>
            <li>王五</li>
            <li>赵六</li>
        </ol>
    </body>
</html>

锚点设置

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
        <ul>
            <li ><a href="#miao">用户管理</a></li>
            <li ><a href="#wang">订单管理</a></li>
            <li ><a href="#xing">商品详情</a></li>
            <li ><a href="#ren">系统设置</a></li>
        </ul>
        <a name="miao"></a>
        <h1>用户管理</h1>
        <p>张三李四</p>
        <p>张三李四</p>
        <p>张三李四</p>
        <p>张三李四</p>
        <p>张三李四</p>
        <p>张三李四</p>
        <p>张三李四</p>
        <p>张三李四</p>
        <p>张三李四</p>
        <p>张三李四</p>
        <p>张三李四</p>
        <p>张三李四</p>
        <a name="wang"></a>
        <h1>订单管理</h1>
        <p>张三李四</p>
        <p>张三李四</p>
        <p>张三李四</p>
        <p>张三李四</p>
        <p>张三李四</p>
        <p>张三李四</p>
        <p>张三李四</p>
        <p>张三李四</p>
        <p>张三李四</p>
        <p>张三李四</p>
        <p>张三李四</p>
        <p>张三李四</p>
        <a name="xing"></a>
        <h1>商品详情</h1>
        <p>张三李四</p>
        <p>张三李四</p>
        <p>张三李四</p>
        <p>张三李四</p>
        <p>张三李四</p>
        <p>张三李四</p>
        <p>张三李四</p>
        <p>张三李四</p>
        <p>张三李四</p>
        <p>张三李四</p>
        <p>张三李四</p>
        <p>张三李四</p>
        <a name="ren"></a>
        <h1>系统设置</h1>
        <p>张三李四</p>
        <p>张三李四</p>
        <p>张三李四</p>
        <p>张三李四</p>
        <p>张三李四</p>
        <p>张三李四</p>
        <p>张三李四</p>
        <p>张三李四</p>
        <p>张三李四</p>
        <p>张三李四</p>
</body>
</html>

内嵌式框架

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>内嵌式框架</title>
    </head>
    <body>
        <iframe src="new_file01.html" width="500px" height="500px"></iframe>
        <iframe src="new_file02.html" width="300px" height="300px"></iframe>
    </body>
</html>

实体字符

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
        &lt; &gt; &quot;Windows&quot; 一直是世界创新的舞台。&reg;它是全球企业的基石,&euro;助力众多蓬勃发展的初创公司变得家喻户晓
    </body>
</html>

三、元素定位

常见的元素定位方式

  • id

    如果某个元素的有id属性,那么如果id属性的值唯一,则可以利用该属性的值定位

    如果id属性的值是一串无序的字母或者数字,则不能使用,有可能是动态id

    driver.find_element_by_id("id属性的值")
    
  • name

    根据name属性的值来定位,但是如果name属性的值在当前页面不唯一,则是无法定位的

    driver.find_element_by_name("keyWord")
    
  • class name

    class属性的值,不唯一的可能性很大

    driver.find_element_by_class_name('s_ipt')
    
  • tag name (通过标签名本身选择,一般无法使用,不推荐)

    driver.find_element_by_tag_name("标签名")
    
  • link text (一般不要使用)

    driver.find_element_by_link_text("搜索")
    
  • partial link text(一般不要使用)

    driver.find_element_by_partial_link_text("搜")
    
  • xpath

/ : 代表的直接子节点

//: 后代节点

//a[@href="/EasyBuy/Product?action=queryProductDeatil&id=740"]//img
driver.find_element_by_xpath('//input[@name="keyWord"]').send_keys("洗面奶")
  • css selector

    根据标签以及标签的属性进行定位

    driver.find_element_by_css_selector('input[name="keyWord"]')
    
    # 如果class属性的值唯一,也可以将其写成css的语法.s_iptdriver.find_element_by_css_selector('.s_ipt')
    
from selenium import webdriver
import time
# 打开浏览器
driver = webdriver.Edge()
# 设置最大行
driver.maximize_window()
# 设置隐式等待
driver.implicitly_wait(10)
# 打开网页
driver.get("http://172.16.3.153:8888/EasyBuy/Home?action=index")
# 点击 登录 按钮
# driver.find_element_by_css_selector('a[href="/EasyBuy/Login?action=toLogin"]').click()
driver.find_element_by_xpath('//a[@href="/EasyBuy/Login?action=toLogin"]').click()
# 设置等待
time.sleep(2)
# 用户名
driver.find_element_by_id('loginName').send_keys("admin")
# 密码
driver.find_element_by_id("password").send_keys("123456")
# 点击 登录 按钮
driver.find_element_by_css_selector('input[οnclick="login();"]').click()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值