基于web应用的自动化测试的设计与实现.doc
《基于web应用的自动化测试的设计与实现.doc》由会员分享,可在线阅读,更多相关《基于web应用的自动化测试的设计与实现.doc(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、基于web应用的自动化测试的设计与实现The Design of The Automation Test Based On Web Application完成日期 2013 年 3 月 30 日开题报告基于web应用的自动化测试的设计与实现摘要目前,软件研发已逐渐向分工协作和流程化发展。为了保证软件产品的最终质量,软件行业已越来越多地重视软件测试。从根本上说,软件测是贯穿于软件产品研发的整个过程,在这个过程中,软件测试会以用户角度,用各种手段检测软件产品,并在检测软件产品的过程中,发现软件产品存在的毛病,因此软件测试的工作量很大。而在测试过程中,许多操作都是重复性的、非智力性的和非创造性的,并
2、要求做出准确而且细致的工作。但是,对于手工测试来说,在这些工作中受各种原因影响,难免会在测试过程中出现各种各样的问题,自动化测试亦正因此,而应运而生。本次设计就是为了减轻软件测试的工作量,针对现今手工测试存在的缺陷,借助现今主流的各种测试工具以及脚本语言,来提高软件测试的效率,用更科学、更智能的手段对软件产品进行更精密、更细致的测试工作。并希望借此来改变现今软件企业的测试方式。力求在测试方法以及在测试技术层面上,对软件测试工作有所突破。关键字:python;QTP;AB;软件测试;API监控The Design of The Automation Test Based On Web Appli
3、cationAbstractCurrently, software development has gradually to the division of work and the process of development. In order to guarantee the final quality of the software product, the software industry has been more and more emphasis on software testing. Fundamentally speaking, the software measure
4、d throughout the whole process of software product development, in the process, the software testing user perspective, using a variety of means to detect software products, and in the process of detection software products, software products exist problems, software testing, a lot of work. In the te
5、st process, many operations are repetitive, non-intellectual and creative, and to make accurate and meticulous work. However, for manual testing, work is influenced by a variety of reasons, will inevitably be a variety of problems in the testing process, and automated test also came into being.The d
6、esign in order to reduce the workload of the software testing, manual testing today defects, with the various tests of todays mainstream tools and scripting language, so as to improve the efficiency of software testing, with more scientific, more intelligent means of software products more sophistic
7、ated, more detailed testing. And the software testing today should be changed by this methods. Sought to test methods and in test technical level, a breakthrough in software testing.Key words: Python; QTP; Software test; API Monitor目录1 绪论11.1 研究背景 11.2 软件测试 11.3 自动化测试与手工测试 11.4 测试环境简介 21.4.1 Python简
8、介21.4.2 QTP简介21.4.3 AB简介32 测试业务需求分析42.1 模块结构 42.2 模块分析 53 测试流程的设计73.1 Python的自动化 73.1.1 Python开发自动化脚本73.1.2 Python批量生成日志样品73.1.2.1 路径覆盖法83.1.3 Python批量生成数据库数据样品83.2 ApacheBench的Web性能测试 103.3 QTP的自动化测试 113.4 多浏览器的兼容性测试 174 测试报告的实现与分析204.1测试环境与配置 204.2测试用例细化 214.3 第一轮测试发现的问题 234.4 第一轮测试结果分析 244.5 验收测试
9、 254.5.2 测试环境与配置254.5.1 测试内容254.7 测试结果分析 254.7.1 对比分析254.7.2 Bug分析264.6 测试结论及发布建议 2746.1 测试结论274.6.2 发布建议274.7 自动化测试的意义 285 结束语295.1 心得体会 295.2 展望 30参考文献31致谢321 绪论1.1 研究背景在我们日常的生活中,软件产品无处不在,有基于嵌入式硬件的,如GPS导航仪、门进系统、人脸识别器等;也有如手机、平板电脑等基于移动终端的;还有基于网页端的,如教务管理系统、图书馆管理系统等。也许我们在不知不觉当中,已经在各种各样的场所使用软件产品。随着科技的进
10、步,我国的软件产业也随之逐渐发展、壮大,但是与国际水平相比,国内软件企业仍然存在较大的差距。由于大多缺乏对国际市场信息和先进的开发模式以及设计模式,缺乏对知识产权的认知度,同时缺乏强硬的管理体系,这些都对国内软件产业的成长与发展造成障碍。从这里我们可以看出,要提高国内软件产业在国际间的地位,需要我们去完善软件的质量认证和规范软件企业管理。1.2 软件测试从国内的软件企业的发展历程,我们可以知道,国内软件企业从起步的那一刻起,就有着“重视开发,轻视测试”的观念。根据国际著名软件企业统计分析,如果软件在研发或者在使用过程中,发现问题越早,器软件成本就越低。一句话,要想在发布后,软件危害的费用降到最
11、低,只有提高软件的质量。软件开发的最基本要求是按照规定时时间内,保证所发布的软件产品的质量。而本论文所论述的软件测试,正是软件质量保证的一个非常重要的手段。1.3 自动化测试与手工测试在软件研发看来,软件产品可以采用各式各样的软件开发技术和方法进行研发。但是,软件产品始终都会存在或多或少的问题和缺陷。而总所周知,一个缺陷可以让人抓狂,可以对个人或者企业造成千上万的损失,可以导致一个知名企业瞬间倒闭,还可以造成各种军事事故。为了保证软件质量,我们需要进行软件测试。软件测试是一项需要投入大量的时间和精力的艰苦工作。而大部分的测试工作都是具有重复性的,无需过多的思考的工作,它要求测试结果可靠、准确以
12、及客观。人类是一种感情丰富的高等动物,计算机是一种不含主观意识(仅对于本论文撰写时期而言)的机器,它会根据我们给出的预期输入,经过程序控制,得出相应的结论。正因为计算机有着这种特性,我们更多地希望计算机帮忙完成一些重复的工作。因此,自动化测试应运而生。我们并非对重复的工作感到厌烦而选择软件测试的自动化,这个是测试工作的需要,因为自动化测试它可以提高测试效率,而且对于测试结果具有一定的可靠性、客观性以及我们最关心的准确性。现今大部分企业也逐渐地从手工测试,向自动化测试转型。因此,本文会花比较大的篇幅论述自动化测试技术。1.4 测试环境简介由于本人在实习期间,主要负责软件测试方面的工作,有负责对部
13、署在实习单位内网的Web应用进行测试,本文选取的是其中一个Web应用。按照这个Web应用的部署及运行环境,需要用到装有Ubuntu 12.04的机器作服务器,其语言环境分别有Java(JDK 1.7)和Python 2.7.3,其中需要用到国外知名的Web容器Apache Tomcat 7.0,数据库方面采用轻巧且开源的MySQL 5.5数据库,需要一台安装有浏览器的电脑做客户端机器。还需要一台带有QTP的测试机供测试使用,由于本人金钱有限,只有一台电脑,对于服务器机器与测试机机器环境的搭建,为了降低测试成本,本人选择了VMware 8虚拟机来安装这些环境。1.4.1 Python简介Pyth
14、on是一种直译式的电脑编程面向对象语言。它有着优雅、明确、简单的语法,其语言具有高度的可阅读性和扩展性,让人看起来整洁美观。Python能够轻松地用其它语言制作的模块轻松地连接在一起,在业界称之为“胶水语言”。而且Python让使用者无需去考虑像如何管理程序所使用的内存这方面的底层细节,在编写与使用上极其容易上手,是一种简单主义思想的语言。本次设计之所以选取Python,是看中了它有着,简单、易学、免费、开源、可移植性强、可扩展性良好以及有着丰富的类库支持。用以批量生成测试数据。1.4.2 QTP简介QTP是Quick Test Professional的简称,是一种面向自动化企业级测试的工具
15、。现在已经被惠普公司收购。它是一个侧重于功能的回归自动化测试工具,主要帮助测试人员完成软件的功能测试,支持VBScript的脚本语言,提供了许多有用的插件,而且还有功能强大的调试工具。支持录制和回放的功能,支持多种方法来识别对象,提供良好的对象识别工具。支持各种驱动测试,集成强大的编辑器,让测试者能够快速的错误现场恢复。而且对于每次测试结果都有较详尽的测试报告。本次设计主要选取QTP作功能测试,以及对测试结果经行进一步分析。1.4.3 AB简介ab是Apache Bench的简称,是著名Web服务器软件Apache提供的超文本传输协议的开源性能测试小工具,它小巧、轻便,在性能测试领域上,提供了
16、优秀的解决方案。ab可以同时模拟多个并发请求,专门用于HTTP Server的benchmark testing,测试Apache等Web服务器的最大承载压力。工具简单,便于使用,它让测试人员甚至开发人员知道一个网站的吞吐率。本次设计主要选取ab作压力测试,主要测试各个Web服务器接口的承载能力,并根据测试结果,分析出Web的性能。2 测试业务需求分析本文选取的Web应用主要用于监控外部Web接口的监控系统,即用于监管提供客户端的APP应用的Web接口,让主管人员能够第一时间知道各个Web接口的访问情况,这对于服务器性能调优有着重大的意义。2.1 模块结构本次选取的Web应用从模块上划分,主要
17、分为数据解析模块、登录模块、产品管理模块、预警设置模块、错误分析模块以及主功能模块等。其模块结构图如下图所示:API监控系统产品管理数据解析模块用户管理日志分析数据入库缓存计算查询产品删除数据修改产品添加产品添加用户查询用户删除用户数据导出数据备份修改用户信息概览查询登录模块预警管理预警删除预警设置预警查询预警提示错误分析信息查询数据导出主功能模块数据统计数据查询图表打印图表导出图2-1 系统模块结构图2.2 模块分析1. 数据解析模块:主要对于Nginx产生日志的进行分析处理,并把处理后的数据存至数据库中,原始数据还会进行进一步的缓存加工,产生每日的缓存数据信息。2. 登录模块:主要用于用户
18、的登录3. 产品管理模块:主要用于用户对于产品的管理,其中包括对于添加产品和修改、以及对产品的删除和查看等,还包括数据图表的展示以及数据的导出功能。4. 用户管理模块:主要用于对于用户的管理,其中包括对于用户的添加、修改、删除、查看等,还包括对于用户权限的管理。5. 预警设置模块:主要对于现有产品下的预警管理,其中包括预警的向导设置与删除,还有点子邮件提醒等。6. 错误分析模块:主要用于现有产品匹配失败的日志进行错误分析,其中包括分页数据的处理以及数据的导出和数据的查询等。7. 主功能模块:主要用于各个指标的数据展示,如:Web接口在该产品下的分布以及占比,还有请求的时长、请求的次数、请求的状
19、况、请求的成功率等,对于这些数据有分图表区域以及数据表格区域。3 测试流程的设计3.1 Python的自动化3.1.1 Python开发自动化脚本通常一个稍具规模的网页系统,其数据量的庞大程度,并非我们能够想象的,对于一些数据上的改动,可能需要通过前端十分繁琐的步骤以及通过服务器负责的计算才能生成。这样一来,对于测试来说,无疑增加了不少操作上的负担,而且这些工作对于数据上的测试,是不重要,甚至可能影响数据的测试效果。对于需要数以万计的测试数据来说,采用了人肉方式来一步一步地完成添加操作,这样的做法是不可取的,因此我们要摒弃这样枯燥的操作,选择自动化脚本,按照需求为我们批量生成测试数据。Pyth
20、on作为一种脚本语言,其用途广泛,可以结合一些主流框架,如Django搭建Web服务。也可以作为一种程序,处理数据等,本次测试比较多地采用它去批量生成测试数据。3.1.2 Python批量生成日志样品通过本次选取的测试产品的需求中,我们了解到其对于日志的解析环节需要用到脚本,把固定格式的日志解析,然后存到MySQL数据库中。由于Python对于文件的读写,以及拥有丰富的易于使用的随机函数库,因此,本次选取Python去实现,批量生成测试数据。下面,先分析这些日志的固有格式:IP - - Nginx默认日志格式时区 “请求方法请求的接口名称 HTTP版本” 请求时长请求状态请求字节数通过分析以上
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 web 应用 自动化 测试 设计 实现
限制150内