软件测试

祝衍军

目录

  • 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 软件测试公司真实案例
登录页面测试脚本设计

【任务描述】:登录页面有账号、密码、验证码、按钮等界面元素,如何通过元素定位方法准确的定位到这些界面元素,并根据业务逻辑实现界面元素的鼠标键盘操作? 

【任务目标】:通过设计登录页面的自动化测试脚本,掌握基本元素定位方法和页面结构及元素的分析方法。

【任务储备】:

1、八种基本元素定位方法

元素定位是编写自动化测试脚本的基础操作,Selenium提供了idnamexpathcss_selectorclass_namelink_textpartial_link_texttag_name八种基本元素定位方法,可以使用driver.find_element_by_定位方法(内容)定位网页上的任何一个元素,具体定位方法如下表所示。

1 八种基本元素定位方法

定位方法

方法声明

功能描述

id定位

find_element_by_id(id)

通过标签id属性定位元素

name定位

find_element_by_name(name)

通过标签name属性定位元素

xpath定位

find_element_by_xpath(xpath)

通过标签的路径定位元素,具体的xpath知识请参考附录2

css_selector定位

find_element_by_css_selector(selector)

通过css选择器定位元素

class_name定位

find_element_by_class_name(className)

通过css名字定位元素

link_text定位

find_element_by_link_text(text)

通过超链接(a标签)里面的文字定位元素

partial_link_text定位

find_element_by_partial_link_text(‘partial_text’)

通过超链接(a标签)里面的部分文字定位元素

tag_name定位

find_element_by_tag_name(tag_name)

通过标签名定位元素

小贴士:Selenium也提供了一次选择多个元素的定位方法,单个元素和多个元素定位方法的区别就是element后面是否增加s,如find_element_by_name(name)通过标签name属性定位单个元素,find_elements_by_name(name)name通过标签name属性定位多个元素。

2、鼠标键盘操作方法

自动化测试在获取到界面元素后,需要对元素进行一些鼠标或者键盘模拟操作,如在输入框里面输入内容、单击、双击等操作,Selenium提供的鼠标操作和键盘操作方法分别如下2个表所示。

鼠标操作方法

方法声明

功能描述

click(element)

单击鼠标左键

click_and_hold(element)

单击鼠标左键并长按不松开

context_click(element)

单击鼠标右键

double_click(element)

双击鼠标左键

drag_and_drop(source,target)

source元素拖动到target元素

drag_and_drop(source,xoffset,yoffset)

source元素拖动到(xoffset,yoffset)坐标

send_keys(content)

将内容(content)发送到对应元素,内部包含字符串内容或者键盘操作

键盘操作方法

属性

描述

属性

描述

Keys.ENTER

回车键

Keys.ARROW_DOWN

方向键(下)

Keys.BACK_SPACE

退格键

Keys.ARROW_UP

方向键(上)

Keys.SPACE

空格键

Keys.ARROW_LEFT

方向键(左)

Keys.TAB

TAB

Keys.ARROW_RIGHT

方向键(右)

Keys.ESCAPE

ESC

Keys.F1

功能键(F1

Keys.SHIFT

Shift

Keys.Fn

功能键(Fn,n表示211的任何一个数字

Keys.CONTROL

Ctrl

Keys.F12

功能键(F2

 使用格式:元素对象.鼠标操作方法

示例:driver.find_element_by_id(id).click(),表示鼠标单击界面上IDid的元素。

如果要往页面元素输入文字或者按键内容,则必须调用send_keys()方法,将内容发送给对应元素,使用格式:元素对象.send_keys(content)

示例:driver.find_element_by_id(id).send_keys(测试),往界面上IDid的元素上输入内容测试

在一些应用场景里需要按照顺序多次操作鼠标或者键盘,如实现剪切功能,则需要先鼠标或者键盘选择内容,然后再按Ctrl+v键盘。这种场景必须用到ActionChains类,ActionChains会将需要的多个操作按照顺序放在一个队列里,当调用其perform()方法时才按照队列里面的顺序依次执行。

使用格式:ActionChains(driver).多个动作方法().perform()

示例:
ActionChains(driver).send_keys(Keys.CONTROL,'a').send_keys(Keys.CONTROL,'v').perform()

表示在选择的界面元素先执行全选,然后再剪切这2个动作。

 

小贴士:在使用键盘属性时,必须引入SeleniumKeys,具体引入语句为:

from selenium.webdriver.common.keys import Keys

在使用ActionChains时,必须引入SeleniumActionChains,具体引入语句为:

from selenium.webdriver import ActionChains

【任务实施】

1、页面结构分析。

2、定位账号输入框并输入”administrator”账户名。

3、定位密码输入框并输入”administrator123”。

4、定位验证码输入框,输入4位以内的任何字符(验证码验证功能未启用)。

5、定位“登录”按钮并鼠标单击或者回车。