基于情境学习的JMeter 互动教学App 设计与实现

2019-10-31 08:14:30李菲陈富强
现代计算机 2019年26期
关键词:教程按钮语音

李菲,陈富强

(三江学院计算机科学与工程学院,南京210012)

0 引言

软件性能指标是衡量软件质量的关键因素之一,软件交付前需要完成大量的性能测试,只有满足用户/行业性能要求,才是一个合格的软件。软件用户使用量增大、用户使用场景的复杂化,对软件性能的测试也提出了更高的要求[1]。软件性能测试,尤其是Web 性能测试,普遍采用JMeter 工具,对HTTP 和FTP 服务器进行性能测试,对数据库进行压力测试(通过JDBC),最终以报表、文本等多种形式展现测试结果[2]。

[14] Lee B, Gordon P., “Urban Spatial Structure and Economic Growth in US Metropolitan Areas”, Working Paper, 2007.

通过我们对JMeter 测试工具的深入研究发现,新手用户在使用JMeter 时存在一定难度,主要在JMeter的脚本编写、参数化设置、运行模式上,需要花费大量的精力去学习。尤其是JMeter 官网上缺少案例介绍,用户缺少实践性的指导。同时通过调查发现现有的App Store 和Android 市场都没有提供相关的JMeter 使用教程。因此,从用户的使用需求出发,结合Web 性能测试的实际场景,本文研究并实现了性能测试工具JMeter 互动式教程App。

采用SPSS 19.0软件对数据进行分析处理,计量资料以(均数±标准差)表示,采用t检验;计数资料以(n,%)表示,采用χ2检验,以P<0.05表示差异具有统计学意义。

1 研究背景

1.1 情境学习理论

情境学习一般运用在教学中,是一种使教学和使用场景密切结合的学习方法。情境认知理论认为,知与行是交互的情境化,通过活动不断向前发展。情境式学习方法,将具体的场景通过一系列图片和视频等创作手段,将特定的场景,呈现在学习者面前,让他们对所要学习的知识有着感性的体验,对加强理解有着较好的帮助,使得抽象的概念具体化,复杂的问题简单化的一种教学方式[3]。通过情境认知将教材与实践相结合,使用户更好地参与到学习课程中。

本App 以情境互动为主,在多边互动的教学氛围下用户自主学习,通过场景化教学、实际案例分析、灵活操作、实践分享等模式,激发教学双方的主动性和探索性,提高教学效果。在有趣的互动式点击操作下,新手用户们可以观察到每一步的测试过程与相应的测试结果。本App 通过情境学习方式,降低JMeter 测试工具的学习门槛,使新手用户们更好地了解、学习和使用JMeter 测试工具。

1.2 JMeter相关软件介绍

JMeter 是Apache 组织的开放源代码项目,完成常用的Web 测试、数据库测试、JMS 测试,JMeter 针对服务器、网络或其他被测试对象等模拟大量并发负载来进行强度测试,并分析不同压力负载下的系统整体性能,包括性能的图形分析、产生相应的统计报表[4]。JMeter 进行性能测试时,通常和Badboy 软件结合使用。Badboy 是一个开源工具,用C++开发,被设计用于测试和开发复杂的动态应用。Badboy 功能丰富(包括一个捕获/重播接口,强大的压力测试支持,详细的报告、图形)。用户在Web 界面上的操作,都可以通过Badboy 进行录制,并生成JMeter 适配的jmx 脚本,JMeter 运行时调用这些脚本,按照负载量、并发时间、变量参数化等配置,完成模拟用户Web 界面操作场景的性能测试。

2 系统分析与设计

本App 开发平台为iOS Xcode,开发语言为Object-C,开发技术包括UI 处理技术、TTS 文本语音识别技术。Xcode 是非开源的集成开发环境,用于开发iOS的应用程序;Object-C 开发语言实现App 中各项具体功能,例如页面框架的搭建,页面跳转等;TTS 文本语音识别技术,实现提示文本框中文字转换成自然语音的输出;UI 处理技术,实现软件的界面设计以及人机交互;em/rem 方法解决页面复杂或是文字足够多的情况下,字体大小设置工作量巨大的问题,实现Web 页面自动化响应,兼容主流手机屏幕尺寸。

图1 App技术路线

通过对本教程的性能测试使用场景和用户需求分析,App 提供以下功能:

互动点击的运行逻辑为:用户点击“开始”按钮启动教程,界面出现蓝色标记框→界面自动出现冒泡提示框→用户点击“下一步”按钮→教程切换到下一个知识点图片→界面出现新的蓝色标记框→界面自动出现新的冒泡提示框,依次遍历相关知识点图片,当知识点图片全部播放完毕后,触发终止操作,“下一步”按钮失效,系统停止互动点击功能。“下一步”按钮的部分实现代码如下:

(2)智能语音播报与静音:实现App 提示文本框中文字自动转换成自然语音并播放;

在应用型本科院校创新创业教育的过程中,企业的支持是必不可少的。因此,应用型本科院校会与地方的龙头企业或是行业代表性企业建立长期的校企合作关系,定期定向培养专业技能型人才。电子商务课程改革在利用校企合作机制,为学生提供真实的实践环境,增强实践教学效果的同时,也将创新创业理念完美地整合到教学过程中。

(3)隐藏/显示界面进度条:实现App 界面上进度条、返回按钮、静音按钮、帮助按钮的隐藏/显示功能,在教程播放过程中,用户点击App 界面任意区域,可自动隐藏/显示进度条、返回按钮、静音按钮、帮助按钮。

本App 互动教程以一个学生选课Web 系统的性能测试为应用场景,通过形象生动的讲解Web 操作录制、数据库配置、JMeter 参数设置等操作,引导用户完成Web 系统性能测试实战,使用户理解Web 性能测试的策略和方法,掌握JMeter 工具的使用。本App 的技术路线如图1 所示。

岩性以古生界的二叠系砂页岩、泥岩为主,砂页岩、泥岩往往含蒙特石和高岭土矿物,该两种矿物具有见风易风化、失水干裂和遇水膨胀而崩碎的特性,强度低,属较软岩,软化系数0.42~0.95,是所谓的“烂石头”,详见表2。基岩单轴抗压强度:中、细砂岩为9.5~19 MPa,泥质粉砂岩2.5 MPa,受基岩裂隙水和出渣车辆碾压的影响,洞底岩石软化、泥化严重,影响正常施工。

可就在话要脱口而出的一刹那,她愣住了,因为那个影子就在床头站着,不惊不怕地站着,与此同时,那被捏过的感觉再次在脑袋里细细回放……大拇指捏住脚背,食指轻轻地在脚心一刮,从趾尖处慢慢滑了出去。那从容不迫的感觉镇住了她,那个动作是那么的不慌不忙、有恃无恐,甚至从脚趾尖上划过时都是在慢慢地把玩。突然间易非像是明白了什么,她强行咽下了就要从嗓子里冲出来的责骂,空洞地张着嘴巴,呆呆地看着那个高大的身影从她的床边走了过去。

本文以宁波市主城区为研究对象,利用SPSS软件对重分类后的POI数据的街区密度进行主成分分析,然后根据各主成分对原始指标的载荷情况选出能够表示商业区、文教区、工业区的综合指标,即以第一主成分作为反映商业区特征的综合指标,以第二主成分作为反映文教区特征的综合指标,以第五主成分作为反映工业区特征的综合指标,对这三个综合指标进行可视化表达(图一至图三),颜色越深代表该综合指标载荷的相应POI点的数量越高,就越能够识别相应的功能区。依据可视化表达结果分析宁波市主城区功能区分布格局:

图2 系统架构图

3 系统功能实现

互动点击推进进程是本App 最主要的人机互动方式,也是教程学习的主要方式。互动点击由蓝色标记框和冒泡提示框组成,蓝色标记框为教程操作内容,即用户进行性能测试的详细步骤,需要用户掌握的知识点,冒泡提示框为操作步骤的文字解释,便于用户理解该知识点。

本App 使用Foundation 框架基础,采用应用程序工具包AppKit 和用户界面工具包UIKit,包含了iOS应用程序所需要的所有界面对象。页面切换功能通过将教程图片创建一个UIView 或UIButton 的类,实现做点击的手势识别即可触发事件,实现页面切换。TTS语音识别主要依赖AVSpeechSynthesizer、AVSpeechUtterance、AVSpeechSynthesisVoice 三 个 类 实 现,其 中AVSpeechSynthesisVoice 配置发音,AVSpeechUtterance将文本字符串合成为语音对象提供给AVSpeechSynthesizer 来播放,这三个类需要先加入AVFoundation 框架[5]。本App 的技术架构如图2 所示。

图3 App主要界面

3.1 互动点击推进功能

JMeter 互动教程App 包括6 套完整的实验教程,分别是:环境发布、网站发布、修改参数、配置数据库、Badboy 教程、JMeter 教程。从基本的环境搭建到最终的JMeter 实验流程,互动教程功能都有所涵盖,这降低了初学者的学习门槛,能让初学者更完整、更系统地学习JMeter。图3 为本App 主要界面。

(1)互动教程内容:测试环境搭建,包括JDK 环境配置、SQL Server 数据库配置、学生选课Web 网站发布;测试工具的使用,如Badboy 安装、JMeter 参数设置,这是本App 的重点内容;测试结果分析,JMeter 性能测试执行结果树展示、JMeter 聚合报告分析;

3.2 语音播报

语音播报实现实时播放教程的文字解释,能让文字、声音、图像相辅相成,给予用户更加良好的学习体验。语音播报基于TTS 语音包开发,将文字导入封装TTS 语音代码包,接收代码包处理好的音频,最终输出音频。TTS 语音播报的难点在于如何正确地在App 中实现TTS 语音包的导入与使用、如何使App 能够正确且迅速地响应用户的操作。

语音包导入的方式与代码如下:

为了使App 能够正确且迅速地响应用户的操作,通过按键触发播报语音提示,本系统采用了绝对定位的方式,将按钮button 调整到图标的对应位置,用户在点击App 的功能性图标和“下一步”图标时,TTS 语音系统会直接播报预先设置的语音。

3.3 隐藏/显示进度功能条

用户可以在教程界面内调出功能条,功能条默认为隐藏,需要用户在屏幕上部下划调出。功能条有四个功能:退出按钮、进度条、语音功能按钮、帮助按钮。其中点击“返回”按钮可以返回首页,拖动进度条可以调整教程的进度,点击“语音”功能按钮可以开/关语音朗读功能(默认关闭),点击“帮助”按钮可以跳转至JMeter 官网。

4 结语

本文通过研究iOS 开发技术,结合情境学习的模式,开发了一款Web 性能测试工具JMeter 的互动教学App,使新手用户可以通过App 上简单有趣的点击互动操作学会性能测试,掌握JMeter 测试工具的使用。用户在App 上每一次的点击互动操作除了有文字的注释说明之外,还有智能语音播报注释。通过这些直观简单的认知方式学习性能测试方法和JMeter 使用步骤,相信本App 一定可以给新手用户提供高效的学习体验。

猜你喜欢
教程按钮语音
当你面前有个按钮
魔力语音
基于MATLAB的语音信号处理
电子制作(2019年14期)2019-08-20 05:43:38
基于MQ3与MP3的价廉物美的酒驾语音提醒器
电子制作(2019年9期)2019-05-30 09:42:10
对方正在输入……
小说界(2018年5期)2018-11-26 12:43:42
挽碧制作教程
意林(2018年15期)2018-08-31 04:33:20
死循环
高效渲染教程
工业设计(2016年1期)2016-05-04 03:58:12
《阅读教程》三、四册修辞格分析
内心不能碰的按钮
商业评论(2014年9期)2015-02-28 04:32:41