Selenium在B/S架构软件中黑盒测试的自动化实现

2019-08-23 18:55:58 科技传播2018年23期

王崇刚

摘 要 B/S架构软件中的黑盒测试通常需要在不同浏览器中通过大量测试用例对软件的功能进行测试,采用人工测试,测试工作量大,效率低,回归测试难以实现。本文阐述了如何利用Python和Selenium编写脚本实现在B/S架構软件中黑盒测试的自动化测试。

关键词 黑盒测试;Selenium;Python

中图分类号 TP3 文献标识码 A 文章编号 1674-6708(2018)224-0162-02

黑盒测试很多时候也叫功能测试,在B/S架构软件中黑盒测试主要对Web页面中的链接、表单测试,利用人工测试存在测试质量难以保证、测试成本高、测试进度难以控制等问题。本文通过Python和Selenium编写测试脚本,实现对B/S架构软件中的表单功能进行自动化测试,以自动化执行测试用例取代人工执行测试用例,提高了测试执行效率。

1 黑盒测试自动化测试设计

黑盒测试自动化测试分为3个模块:1)读取测试用例模块;2)自动执行测试模块;3)测试报告生成模块。各模块实现功能如下:1)读取测试用例模块功能:实现从EXCEL中读取测试用例存储到Python的列表中;2)自动执行测试模块功能:从列表中读取测试用例,Python调用Selenium库打开浏览器进行自动化测试;3)测试报告生成模块功能:将测试结果生成html格式的测试报告。

2 自动化测试模块实现

本文以B/S架构中常见的登录界面为例进行自动化测试代码编写,登录界面工作流程如图1所示。

2.1 读取测试用例模块的实现

读取测试用例模块是通过Python语言编写代码读取Excel测试用例至Python的列表中。登录界面主要验证合法或非合法的用户名与密码是否能登录,测试的策略如下:输入已注册的用户名和密码,验证是否成功登录;输入已注册的用户名和不正确的密码,验证是否成功失败;输入未注册的用户名和任意密码,验证是否登录失败。根据测试策略设定测试用例,假设已注册的用户名为User1,密码为a11111,其他用户密码和密码不能登录。测试用例表如表1所示。

利用Python语言编写代码实现读取测试用例内容到列表,并返回列表,实现代码如下:

2.2 自动化测试模块的实现

自动化测试模块实现是将读取测试用例模块中返回的列表进行遍历,将每一条测试用例用调用Selenium模块调用浏览器进行自动化测试,将测试结果追加到列表中。

本文以Chrome浏览器为测试浏览器进行测试,通过定位登录页面中input文本框和按钮元素,将测试用例填写到相应的input文本框中,通过调用提交按钮的click事件进行数据提交。如测试用例中的用户名和密码正确则由Login.jsp页面跳转到Success.jsp页面,否则不跳转到Success.jsp页面。在自动化测试中只须读取弹出窗口URL地址,如URL地址与期望输出相同则测试成功。定位页面元素常用的定位页面元素有以下方法:find_element_ by_id;?find_element_by_name;find_element_ by__tag_name;find_element_by_link_text;find_ element_by_class_name。当页面由JavaScript生成时通过以上常用的元素定位方法无法定位页面元素,此时可以使用find_element_by_xpath进行页面元素进行定位。其自动化测试实现核心代码如下:

2.3 测试报告生成模块

利用Python语言编写代码将测试结果生成html的测试报告,由于篇幅有限,这里不再进行源代码展示,测试报告结果如图2所示。

3 结论

本文介绍了如何利用Python语言编写代码调用Selenium模块实现B/S架构中黑盒测试的自动化,在一定程度上提高测试执行效率,缺点是在WEB页面进行大规模修改时,Python编写脚本的维护成本高。

参考文献

[1]卢晨.基于Selenium进行Web应用测试研究[J].软件导刊,2015,14(1):154-155.

[2]刘壮飞,吴金霖.浅析Selenium在CRM项目中的应用[J].中国高新技术企业,2016(1):35-36.

[3]吴晓华,王晨昕.Selenium WebDriver3.0自动化测试框架实战指南[M].北京:清华大学出版社,2017.

?