软件测试

祝衍军

目录

  • 1 软件测试概述
    • 1.1 软件测试概述
    • 1.2 软件缺陷(BUG)
    • 1.3 软件测试职业发展
    • 1.4 软件测试分类
    • 1.5 软件测试流程
    • 1.6 课程思政:秘书也疯狂的故事
  • 2 黑盒测试
    • 2.1 黑盒测试概述
    • 2.2 等价类划分法
    • 2.3 边界值分析法
    • 2.4 决策表法
    • 2.5 正交实验设计法
    • 2.6 场景测试法
    • 2.7 错误推测法
    • 2.8 功能需求分析
    • 2.9 测试用例设计
    • 2.10 课程思政:五笔输入法的故事
  • 3 测试执行
    • 3.1 测试计划
    • 3.2 测试执行BUG记录
  • 4 白盒测试
    • 4.1 白盒测试概述
    • 4.2 程序流程图设计
    • 4.3 白盒测试用例设计
    • 4.4 JUnit单元测试
    • 4.5 课程思政:WPS的故事
  • 5 Web应用软件自动化测试
    • 5.1 Python自动化测试基本框架
    • 5.2 登录页面测试脚本设计
    • 5.3 新增文章页面测试脚本设计
    • 5.4 基于Unitest的登录测试用例集脚本设计
    • 5.5 课程思政:大并发案例阿里云的小故事
  • 6 智能终端APP自动化测试
    • 6.1 企业案例
    • 6.2 Android智能终端设备连接
    • 6.3 Android APP应用自动化测试
    • 6.4 Monkey 压力测试
    • 6.5 课程思政:鸿蒙的故事
  • 7 JMeter性能测试
    • 7.1 性能测试需求分析
    • 7.2 文章新增脚本开发
    • 7.3 文章新增脚本完善
    • 7.4 场景设计与运行结果分析
    • 7.5 课程思政:12306网站的技术进步故事
  • 8 Postman接口测试
    • 8.1 Postman
    • 8.2 企业网站管理内容系统接口测试
  • 9 Loadrunner性能测试(1+x考证高级相关知识点)
    • 9.1 录制回放
    • 9.2 思考时间设置
    • 9.3 检查点设置
    • 9.4 参数化设置
    • 9.5 关联设置
    • 9.6 集合点设置
    • 9.7 场景设计与运行分析
  • 10 省技能大赛
    • 10.1 竞赛系统
    • 10.2 相关知识
  • 11 企业案例
    • 11.1 软件测试公司真实案例
新增文章页面测试脚本设计

【任务描述】:前面我们已经学会了基本的界面元素定位方法,但是针对复杂的页面如何定位呢,如界面有自定义的下拉列表、时间控件、富文本输入框、面包屑导航等内容,如何定位到这些元素并输入想输入的内容? 

【任务目标】:通过设计新增文章的自动化测试脚本,掌握页面内的iframe切换方法和页面间的窗口切换方法、鼠标和键盘自由组合实现复杂界面元素内容的输入。

【任务储备】:

1switch_to方法

(1) iframe切换

web自动化测试中,如果一个元素定位始终不到,如果定位方法没有写错,很大概率就是这个元素在iframe中。framehtml中的框架,通过使用frameset 标签可以将页面进行垂直或者水平分离,包含framesetframeiframe三种标签。

Frameset:将HTML页面分割,可以嵌入多个HTML源码文件,实现单个页面显示不同HTML页面效果,不能嵌入在BODY标签中。

Frame:在Frameset下面设置Frame,实现某个框架页面,必须嵌套在Frameset中,无法单独存在。

Iframe:在某个页面嵌入一个HMTL窗口信息,可脱离Frameset应用,框架属性有自己定义。

新增文章页面结构中的iframe如图1所示。

 

1

如果需要定位的元素在iframe中,则需要先切换到对应的iframe再定位元素,selenium切换iframe的方法有:

1driver.switch_to.frame() #根据元id索引切换

2driver.switch_to.default_content() #切换到默认frame

3driver.switch_to.parent_frame() #切换到父级 frame


如果一个界面中有很多iframe,且每个iframe没有id属性,则只能通过索引来定位,可以在右边的代码栏通过按Ctrl+F调出搜索栏,通过搜索来精准定位iframe的索引值(从0开始),具体如图2所示。

 

 

2


2)多窗口切换

在测试时有时候点击某些链接会打开一个新的窗口,想在新页面上操作就得先切换窗口,如在百度页面点击具体的某个搜索内容,则会打开一个新的窗口,如图3所示。


 


3

selenium通过切换窗口句柄来进行多个窗口之间的切换,每个窗口都可以通过唯一标识句柄来标识,只有切换句柄就可以在多个窗口上灵活操作。

使用格式:driver.switch_to.window(driver.window_handles[n])n表示窗口句柄索引


(3)弹出对话框alert切换

在页面操作时会遇到JavaScrip所生成的alertconfirm以及prompt弹出框,需要对弹出框操作后才能进行下一步,如图4所示。

 


4

selenium通过switch_to切换到弹出框后才能进行下一步操作,具体代码为:

driver.switch_to.alert()   #切换到弹出框

操作alert的常用方法如表1所示。

1

方法(属性)声明

功能描述

text

属性,返回弹里面的文本信息

accept()

接受弹出框,点击“确定”按钮

dismiss()

取消弹出框,点击“取消”按钮

send_keys(content)

发送文本内容content给弹出框的输入内容,针对prompt弹出框才有用


2、自定义下拉列表值选取

目前流行的很多应用系统都采用了前后端分离的技术来实现,前后端也都使用一些成熟的框架,界面部分元素根据内容动态生成,并不是用的常规的HTML标签来实现,达到更丰富的界面表现形式。如在新增文章界面中的“所属栏目”输入下拉列表,具体界面如图5所示。

 

5

该下拉列表是通过div动态生成的,且无法在界面上通过鼠标右击然后点击“检查”的方式定位到需要选择的界面元素,前面学过的八种基本元素定位方法都没法定位到下拉列表里面的值,这种情况只能通过键盘鼠标的多次操作来实现下拉列表里面的取值操作

 

 

【任务实施】

1、页面结构分析。进入企业网站管理内容系统后台登录页面

2、编写脚本实现如下操作:

1)进入企业网站内容管理系统后台登录页面;

2)输入用户名、密码、验证码,单击“登录”按钮;

3)单击顶部导航栏的“功能大全”菜单;

4)在弹出的二级菜单栏中单击“内容管理”菜单;

5)在右侧的三级菜单栏中单击“文章管理”菜单;

6)在文章管理页面单击“新增”按钮;

7)在文章新增页面进行如下操作:

    1)在所属栏目输入框中选择“新闻动态下面的公司新闻”;

        2)在文章属性输入框中选择“推荐”值;

        3)在发布时间输入框(日历显示控件)中选择当前日期的后一天;

        4)在文章缩略图(文件输入框)中输入一张图片;

        5)在文章内容(富文本输入框)输入“富文本输入框”内容;

        6)单击右上角的“保存”按钮;