链家网站系统测试设计与实现_kaic

简介: 链家网站系统测试设计与实现_kaic

摘要:随着互联网以及前后端技术的不断发展Web应用,具有应用领域广、使用用户数量大、页面交互性强以及复杂性不断上升的特点。由于Web类应用开发过程迭代频繁,对于Web类应用的自动化测试方法以及测试工具都有很高的要求。之前,测试人员的主要测试手段仍是手工测试,而当下,手工测试并不能完全满足Web类应用的测试需求,手工测试效率不高并且测试的覆盖率也难以确保系统存在的问题。所以在此背景需要制定一套高效的、针对Web应用测试的测试方案显得尤为重要,以下是本文研究内容:

本文以链家Web系统为核心,首先介绍研究背景以及研究目的,通过现存的软件测试技术来分析得出相对有优势的主流测试技术理论知识,在此基础之上通过分析链家Web系统的业务需求特点来选取对应的软件测试工具,如采用Postman、JMeter等测试工具来实现接口测试,性能测试,并根据测试模块,用例名称,前置条件,测试步骤,预期结果,时间结果等要素和使用等价类划分法,边界值法,因果图法,错误猜想法,场景设计法进行用例的设计,然后根据测试用例进行测试用例的执行。最后通过执行测试后得出的测试报告来进行分析,分析系统的基本业务功能的是否可以正常使用,并对系统的业务主流程进行压力测试的总结报告进行分析,发现当中存在性能不足的接口以及给予合理的优化建议,在系统后续的迭代中可进行性能上的优化。

关键词:接口测试;性能测试;Postman;JMeter

Lianjia Website system test design and implementation

         

Major:Software Management

Student: Feng Yu Zhen   Supervisor: Wen Sha

Abstract :With the continuous development of the Internet and front-end and back-end technologies, Web applications are characterized by a wide range of applications, a large number of users, strong page interactivity, and increasing complexity. Due to the frequent iterations in the development process of Web applications, there are high requirements for automated testing methods and testing tools for Web applications. Previously, the main testing method for testers was still manual testing. However, currently, manual testing cannot fully meet the testing requirements of Web applications, and manual testing is not efficient and the coverage of testing is difficult to ensure that the system has problems. Therefore, in this context, it is particularly important to develop an efficient test plan for Web application testing. The following is the research content of this article:

This article focuses on the LinkedIn Web system. Firstly, it introduces the research background and purpose, analyzes existing software testing technologies to obtain relatively advantageous theoretical knowledge of mainstream testing technologies, and on this basis, selects corresponding software testing tools by analyzing the business requirements characteristics of the LinkedIn Web system, such as using testing tools such as Postman and JMeter to implement interface testing and performance testing, The use case name, preconditions, test steps, expected results, time results, and other elements are designed using equivalence class division, boundary value method, causality diagram method, error conjecture method, and scenario design method, and then the test case is executed based on the test case. Finally, analyze the test report obtained after the execution of the test, analyze whether the basic business functions of the system can be used normally, and analyze the summary report of stress testing on the main business processes of the system. Find out the interfaces with insufficient performance, and provide reasonable optimization suggestions. Performance optimization can be carried out in subsequent iterations of the system.

Keywords: Interface Testing,Performance Testing,Postman,JMeter

目  录

1 绪论

1.1 课题的研究背景

1.2 课题研究目的及意义

1.3 国内外研究综述

1.4 课题的主要内容

1.5 本章小结

2 Web系统测试技术分析

2.1 Web系统的特点

2.2 Web系统测试方法研究

2.3 Web系统测试的流程设计

2.4 Web系统测试工具的分析与选取

2.5 本章小结

3系统测试需求分析与策略

3.1 系统界面需求分析

3.1.1界面需求分析

3.1.2 系统界面测试

3.2 系统功能测试需求分析

3.2.1 功能测试需求分析

3.2.2 功能测试策略

3.3 系统接口测试需求分析

3.3.1 接口测试需求分析

3.3.2 接口测试策略

3.4 系统性能测试需求分析

3.4.1 性能测试需求分析

3.4.2 性能测试策略

3.5 本章小结

4 系统测试设计与实现

4.1 功能测试实现

4.1.1 登录模块的测试设计与实现

5.1.2 页面筛选、搜索查询模块的测试设计与实现

4.2 接口测试实现

4.3 UI自动化测试实现

4.4 性能测试实现

4.5 本章小结

5 测试结果分析

5.1 功能测试结果分析

5.2 接口测试结果分析

5.3 UI自动化测试结果分析

5.4 性能测试结果分析

5.5 本章小结

6 结论与展望

6.1 总结

6.2 课题研究的未来展望

6.3 本章小结

参考文献

致 谢

 

1 绪论

1.1 课题的研究背景

随着科学技术的快速发展使得软件类型的行业迎来了重大的历史变革,许多的新款软件应用于社会上的各个工作岗位以及人们的日常生活,软件行业才能够变得越来越繁荣有力地蓬勃发展。Web类型的软件更是有着自己独特且尤为突出的优势:在操作上十分简单、使用起来十分便捷等等。伴随着敏捷开发的日益发展,也变得更多的公司研发队伍把这些先进的研发模式融入到自身企业正在开发的项目上。而Web类型的应用软件也成为了软件这一行业当中不可或缺的一部分,人们对它的开发及其迭代更新周期的要求变得越来越短。但与此同时,我们也随着周边的生活方式发生翻天覆地的变化,因此人们对于软件的应用质量要求也显得越来越大。在早年间软件大多数都采用开发时所进行的调试方式来对所研发的软件进行软件测试,但现如今随着科技的发展,软件的规模越来越大软件复杂度也越来越高,简单的开发调试方式已经不可以胜任软件测试这一重要的研发环节,软件使用质量并没有得到一个很好的质量保障。软件测试仅仅是软件开发人员在完成开发后的调试工作,但这并不是真正的软件测试[1]。同时更重的是Web类型的软件更多的是通过界面直接面向使用者,因此对于Web的质量的要求就变得更高了,同时对于测试人员的专业能力也变得更为严格。每个企业都为了让扩大自家公司在软件市场的占有更高的份额,纷纷使用了快速迭代、且能够及时给予研发团队测试反馈的研发方式来对软件产品进行改进。软件的迭代周期的加快和软件的使用质量要求变高,早已使得早年的调试测试不再适用于软件研发当中,一部分重要的测试环节开始转移,于是乎形成了一门专门的软件测试岗位。

1.2 课题研究目的及意义

在应用软件的整个开发周期中,软件测试是把关软件的使用质量最为重要的手段之一。测试这个环节对于发掘软件缺陷、优化应用的质量起着至关重要的作用,而测试这一环节又横跨了整个应用的生命周期,通过软件测试不但能够检验能否满足客户的需求和应用软件的具体要求,还能够检验应用软件的真实特性。把实际的测试结果和在测试之前的预期结果加以比对,可以通过分析判断应用软件各环节和应用软件具体要求的对应情况。另外,测试成绩还能够成为评判软件品质的合理基础,测试人员能够运用试验生成的数值来分析定位问题,确定缺陷产生的实质原因,然后可以有针对性的对软件进行改进,使得软件更优。随着软件系统规模和复杂性的逐步增加以及敏捷开发的发展,不断的被要求缩短,进而测试时间也要求缩短。而且还必须通过对高速迭代的应用软件进行更加繁琐的回归试验才能保证软件的使用质量,再者对测试人员的软件测试任务也就显得越来越繁琐,对测试人员的专业知识水平也就需要越来越高要求,因此提高软件测试任务的工作效率就显得尤为重要。很多行业开始意识到单纯靠手工测试已经无法满足繁杂的测试要求[2]。自动化测试就在这个背景下诞生了。所谓的自动化测试,就是通过机器来帮助我们实现大部分重复性的测试任务,以做到减少人力资源的浪费,大大提高企业的效益。

1.3 国内外研究综述

相较于国内,国外的测试技术已经相当成熟了,也生产出很多有名的测试技术方法以及测试管理的流程规范等。软件测试的自动化测试是对于预期正常或者是异常条件下通过机器自动执行测试用例并生成测试报告分析运行结果。通过自动化测试可以极大地提升回归测试、稳定性测试和兼容性测试的工作效率,在保障产品质量和持续构建等方面起到举足轻重的作用[3]。国外的自动化技术依已然成为软件领域的领先者。在往后的测试发展过程里,因为测试场景的不断复杂话,简单的录制脚本播放执行脚本已经不足以满足软件测试的要求了,因此还出现了编写测试脚本来进行测试的方式。同时在编写测试脚本这种测试方式中,数据驱动的技术理念以及关键字驱动的模式,因为大大降低企业的运维成本得到大众的认可,并一跃成为为自动化测试,其发展阶段当中举足轻重的划分依据。

而国内的测试技术不仅由于起步时间晚,还投入成本太少,导致与国外的众多发达国家相比较依然存在不小的技术差距的。据19年的测试的现状报告分析指出,亚洲地区除印度以外的测试人员仅仅占了全球不到百分之五的总额,而自动化测试人员的相对占比就毋庸置疑的更少了,由此可见我国的软件测试技术现状是由于对软件测试及自动化测试技术地位的重视度不高导致的,更多的公司仍在在使用人工测试。与人工测试相比,自动化测试能较大程度地提高了软件测试的整体效率[4]。随着IT行业的高速发展,大部分企业都意识到软件测试的重要性,对待测试的投入也相较于以往更多了,但制定化软件更多的实质还是使用在大型的互联网公司中,而中小型体量的企业只能因为受到成本的限制,更多的数采用能够免费开源测试工具来满足Web应用的测试要求。

1.4 课题的主要内容

本次课题的主要内容是:对待测系统的功能点以及需求进行分析,设计测试用例,利用抓包工具进行抓包,整理待测系统的接口进行接口自动化测试,利用Python与Selenium进行自动化测试,最后对待测系统进行压力测试分析总结系统的性能是否达标。主要是从以下几点进行研究:

(1)通过对待测系统的功能点以及需求进行分析;

(2)通过各个系统的模块主要功能进行测试用例的设计以及功能测试;

(3)通过抓包工具对待测系统进行抓包,整理接口文档进行接口自动化测试;

(4)基于测试用例进行自动化测试的用例设计与实现;

(5)通过JMeter对待测系统进行压力测试分析总结系统的性能。

1.5 本章小结

本章节主要分析了软件测试的发展背景以及国内外现在软件测试的研究情况,随着时代的飞速发展,软件测试的技术也有了不错的进步,从原本的开发团队调试进行测试到后来的功能测试甚至乎是效率更高的自动化测试。测试的效率不断提升给人们带来了更大的效益,从一定程度上减少了人力资源的占用。除此以外还有涉及到本次课题所要的研究内容以及有关Web系统的测试方案的设计。


2 Web系统测试技术分析

2.1 Web系统的特点

随着Internet、Intranet/Extranet的快速增长,Web系统已经对商业、工业、银行、财政、教育、政府和娱乐及我们身边的日常生活以及工作环境产生了巨大的影响[5]。很多的电子信息正在逐步的被转移到网上进行各式各样的交互。与以往传统类型的软件相比,Web系统有很多不一样的地方,比如:

(1)Web系统的使用者数量大,这一点相对于其他类型的软件来说对单位时间内并发能够处理事务的能力和系统的整体性能是一个不小的考验;

(2)用户端的软硬件配置大同小异,这些对于Web系统的适应能力也有着不小的要求;

(3)Web系统更看重信息的发布、查询、以及捕获等交互方式,在日常使用的功能上并不会像传统类型的软件那么复杂,但它的内容更新和技术的迭代速度则会相对较快。

2.2 Web系统测试方法研究

由于敏捷开发的出现,使得Web系统的软件开发周期变得更短,迭代速度更快,而相对的对于测试的要求也就更高了,测试的工作量可能从一开始的一人天的工作量变成几人天的工作量。在软件开发的过程中可能出现缺少必要的文档,以及客户的需求经常变更,页面的内容不断的变更,从而增加了测试以及维护的难度,这使得Web系统比起一般的软件进行测试会相对复杂,而较为传统的测试方法已经慢慢的落伍,不能够适配Web系统的测试任务了,所以需要设计一套独特的测试方法。在一般的Web系统测试中会优先考虑到的几个方面如下:

(1)功能测试:主要是页面的功能和业务逻辑进行详细测试,是否符合规格设计说明书当中的需求说明,校验点有基本的页面特性、业务基本逻辑等;

(2)用户界面测试:包含了系统页面是否能够保持与原型设计一致,某些页面的元素(如页面的按钮、列表、字段等等)的比例,页面的边距、间距,页面布局整体是否与规格说明书相符,页面文字是否能够正确拼写;

(3)负载(压力)测试:检查Web系统的负载效率,需要模拟大量的用户进行访问Web系统,需要对Web系统页面的执行效率进行模拟,以实现整个系统的业务能力稳定,确保Web系统在面对极端场景时,仍能够正常运作,保持业务的正常。一般情况下执行压力测试需要用到某些测试软件进行配合,而目前较为流行的测试软件有Webload,LoadRunner,WinRunner,JMeter等;

(4)安全性测试:Web系统的安全性同样是Web测试时常会考虑到的一个很重要的因素,包括页面,Web服务器是否存在漏洞、加密信息的保密程度,防止黑客攻击的能力等;

(5)兼容性测试:对于各种操作系统(Windows、Mac OS、Linux)与不同的浏览器以及浏览器的版本的组合是否能正常运行。

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
相关文章
|
18天前
|
测试技术 C语言
网站压力测试工具Siege图文详解
网站压力测试工具Siege图文详解
26 0
|
API 数据安全/隐私保护
如何使用Postman 测试Https 网站?
大家好,我是阿萨。 昨天我们学习了Postman 导入导出API 的用法。针对日常工作测试工作的最基本用法就介绍完了。
763 0
如何使用Postman 测试Https 网站?
|
18天前
|
测试技术 Linux Apache
网站压力测试工具webbench图文详解
网站压力测试工具webbench图文详解
12 0
|
19天前
|
Web App开发 搜索推荐 测试技术
网站速度测试
【4月更文挑战第8天】网站速度测试
12 2
|
1月前
|
SQL Apache 流计算
Apache Flink官方网站提供了关于如何使用Docker进行Flink CDC测试的文档
【2月更文挑战第25天】Apache Flink官方网站提供了关于如何使用Docker进行Flink CDC测试的文档
143 3
|
2月前
|
前端开发 测试技术 Android开发
自动化测试学习网站
自动化测试学习网站
|
2月前
|
敏捷开发 测试技术 持续交付
几个有用的测试网站
几个有用的测试网站
|
2月前
|
SQL 安全 测试技术
面试题10: 如何测试一个网站?
面试题10: 如何测试一个网站?
|
3月前
|
API 数据安全/隐私保护
如何使用Postman 测试Https 网站?
如何使用Postman 测试Https 网站?
|
3月前
|
数据采集 测试技术 网络安全
阿萨聊测试 ZAP3:如何测试HTTPS的Web网站?
阿萨聊测试 ZAP3:如何测试HTTPS的Web网站?
阿萨聊测试 ZAP3:如何测试HTTPS的Web网站?

热门文章

最新文章