摘 要
随着社会的发展,社会的方方面面都在利用信息化时代的优势。互联网的优势和普及使得各种系统的开发成为必需。
本文以实际运用为开发背景,运用软件工程原理和开发方法,它主要是采用python语言技术和mysq1数据库来完成对系统的设计。整个开发过程首先对基于爬虫技术的“营库”微信小程序进行需求分析,得出基于爬虫技术的“营库”微信小程序主要功能。接着对基于爬虫技术的“营库”微信小程序进行总体设计和详细设计。总体设计主要包括小程序功能设计、小程序总体结构设计、小程序数据结构设计和小程序安全设计等:详细设计主要包括基于爬虫技术的“营库”微信小程序数据库访问的实现,主要功能模块的具体实现,模块实现关键代码等。最后对基于爬虫技术的“营库”微信小程序进行了功能测试,并对测试结果进行了分析总结,得出基于爬虫技术的“营库”微信小程序存在的不足及需要改进的地方,为以后的基于爬虫技术的“营库”微信小程序维护提供了方便,同时也为今后开发类似基于爬虫技术的“营库”微信小程序提供了借鉴和帮助。
基于爬虫技术的“营库”微信小程序开发使系统能够更加方便快捷,同时也促使基于爬虫技术的“营库”微信小程序变的更加系统化、有序化。系统界面较友好,易于操作。
关键词:爬虫技术 python MySQL
Abstract
With the development of society, all aspects of society are utilizing the advantages of the information age. The advantages and popularity of the Internet make the development of various systems necessary.
This article takes practical application as the development background, applies software engineering principles and development methods, and mainly uses Python language technology and mysq1 database to complete the system design. The entire development process first analyzes the requirements of the "Yingku" WeChat mini program based on crawler technology, and obtains the main functions of the "Yingku" WeChat mini program based on crawler technology. Next, the overall and detailed design of the "Yingku" WeChat mini program based on crawler technology will be carried out. The overall design mainly includes the functional design of the mini program, the overall structure design of the mini program, the data structure design of the mini program, and the security design of the mini program. The detailed design mainly includes the implementation of the "Yingku" WeChat mini program database access based on crawler technology, the specific implementation of the main functional modules, and the key code for module implementation. Finally, a functional test was conducted on the "Yingku" WeChat mini program based on crawler technology, and the test results were analyzed and summarized. The shortcomings and areas for improvement of the "Yingku" WeChat mini program based on crawler technology were identified, providing convenience for the maintenance of future "Yingku" WeChat mini programs based on crawler technology, At the same time, it also provides reference and assistance for the development of similar "Yingku" WeChat mini programs based on crawler technology in the future.
The development of "Yingku" WeChat mini programs based on crawler technology makes the system more convenient and efficient, while also promoting the systematization and orderliness of "Yingku" WeChat mini programs based on crawler technology. The system interface is relatively friendly and easy to operate.
Keywords:Crawler technology Python MySQL
目 录
随着网络的迅速发展,万维网成为大量信息的载体,如何有效地提取并利用这些信息成为一个巨大的挑战。搜索引擎,例如传统的通用搜索引擎AltaVista,Yahoo!和Google等,作为一个辅助人们检索信息的工具成为用户访问万维网的入口和指南。但是,这些通用性搜索引擎也存在着一定的局限性,如:(1)不同领域、不同背景的用户往往具有不同的检索目的和需求,通过搜索引擎所返回的结果包含大量用户不关心的网页。(2)通用搜索引擎的目标是尽可能大的网络覆盖率,有限的搜索引擎服务器资源与无限的网络数据资源之间的矛盾将进一步加深。(3)万维网数据形式的丰富和网络技术的不断发展,图片、数据库、音频、视频多媒体等不同数据大量出现,通用搜索引擎往往对这些信息含量密集且具有一定结构的数据无能为力,不能很好地发现和获取。
人们对于自我提升的诉求越发突出,对于各种训练营的搜索量也越来越大,但大家搜索起来,并没有一个统一的网站,获得各类信息的过程非常麻烦,需要用户主动添加条件进行筛选,效率低。为了解决上述问题,定向抓取相关网页资源的聚焦爬虫应运而生。聚焦爬虫是一个自动下载网页的程序,它根据既定的抓取目标,有选择的访问万维网上的网页与相关的链接,获取所需要的信息。与通用爬虫不同,聚焦爬虫并不追求大的覆盖,而将目标定为抓取与某一特定主题内容相关的网页,为面向主题的用户查询准备数据资源。运用爬虫技术实现自动搜索相关信息,运用大数据分析整理和清洗技术,只需后台经过少量的人工的处理,就可以把所有的能够找到的训练营信息进行整理,然后分门别类的呈现出来,实现简化用户的搜索过程,方便用户对训练营的信息获取,打造出一个“营库”。
以达到为用户搜索减负的目的,简化用户搜索过程,优化用户搜索结果。用微信小程序的方式展示爬取结果,方便用户选择。
1.2 研究方法
首先,通过引擎搜索或者查阅相关文献资料,了解了本系统开发的背景以及设计系统的意义所在,收集用户需求信息。其次,在开发工具上,最终确定选用Python平台来设计开发本系统,Mysql作为设计数据库的工具。即利用Python语言实现用户界面,并同数据库连接起来实现完整的通信功能。之后,设计出系统大致的功能模块。主要从方便系统用户和系统管理员的角度进行分析,明确该系统应该具有的功能。最终是测试系统,通过用例测试发现存在的问题并找到解决的方案。利用现有的开发平台,结合自己所学的知识,在老师的指导帮助下来完成该设计,确保系统的可用性、实用性。
1.3爬虫技术
网络为搜索引擎从万维网下载网页。一般分为传统爬虫和聚焦爬虫。
传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。通俗的讲,也就是通过源码解析来获得想要的内容。
聚焦爬虫的工作流程较为复杂,需要根据一定的网页分析算法过滤与主题无关的链接,保留有用的链接并将其放入等待抓取的URL队列。然后,它将根据一定的搜索策略从队列中选择下一步要抓取的网页URL,并重复上述过程,直到达到系统的某一条件时停止。另外,所有被爬虫抓取的网页将会被系统存贮,进行一定的分析、过滤,并建立索引,以便之后的查询和检索;对于聚焦爬虫来说,这一过程所得到的分析结果还可能对以后的抓取过程给出反馈和指导。
1.4微信开发者工具
微信开发者工具现在已经被小程序开发团队开发运行,目前微信开发者工具任然在不断的完善中,在开发小程序时经常要不断的更新。可以使用微信扫码登陆开发者工具,开发者工具将使用这个微信帐号的信息进行小程序的开发和调试。
机型选择:小程序以智能手机的屏幕尺寸为设计标准,进行切图。
预览界面:写好视图布局后点击编译,用来刷新视图界面。
控制台:方便调试打印输出信息。
上传代码:上传到腾讯服务器,提交审核必经步骤。上传代码时可以填写版本号和备注信息。
资源文件:一般可以在资源文件进行对应项目的文件目录的断点调试。
显示远程调试:手机端和PC端开发工具联调对用户而言是非常实用的。
本地数据存储:显示的是本地存储的数据。
视图调试:标组件以子父层级结构呈现,方便调试。
微信限制在2M 以内的代码体积;开发中一般不校验合法域名信息;小程序后台要做配置服务器域名。
以上就是在开发过程中微信开发者工具常用到的功能,微信开发者工具也在不断的完善。
1.5Flask框架
Flask是一个轻量级的可定制框架,使用Python语言编写,较其他同类型框架更为灵活、轻便、安全且容易上手。它可以很好地结合MVC模式进行开发,开发人员分工合作,小型团队在短时间内就可以完成功能丰富的中小型网站或Web服务的实现。另外,Flask还有很强的定制性,用户可以根据自己的需求来添加相应的功能,在保持核心功能简单的同时实现功能的丰富与扩展,其强大的插件库可以让用户实现个性化的网站定制,开发出功能强大的网站。
Flask是目前十分流行的web框架,采用Python编程语言来实现相关功能。它被称为微框架(microframework),“微”并不是意味着把整个Web应用放入到一个Python文件,微框架中的“微”是指Flask旨在保持代码简洁且易于扩展,Flask框架的主要特征是核心构成比较简单,但具有很强的扩展性和兼容性,程序员可以使用Python语言快速实现一个网站或Web服务。一般情况下,它不会指定数据库和模板引擎等对象,用户可以根据需要自己选择各种数据库。Flask自身不会提供表单验证功能,在项目实施过程中可以自由配置,从而为应用程序开发提供数据库抽象层基础组件,支持进行表单数据合法性验证、文件上传处理、用户身份认证和数据库集成等功能。Flask主要包括Werkzeug和Jinja2两个核心函数库,它们分别负责业务处理和安全方面的功能,这些基础函数为web项目开发过程提供了丰富的基础组件。Werkzeug库十分强大,功能比较完善,支持URL路由请求集成,一次可以响应多个用户的访问请求;支持Cookie和会话管理,通过身份缓存数据建立长久连接关系,并提高用户访问速度;支持交互式Javascript调试,提高用户体验;可以处理HTTP基本事务,快速响应客户端推送过来的访问请求。Jinja2库支持自动HTML转移功能,能够很好控制外部黑客的脚本攻击。系统运行速度很快,页面加载过程会将源码进行编译形成Python字节码,从而实现模板的高效运行;模板继承机制可以对模板内容进行修改和维护,为不同需求的用户提供相应的模板。目前Python的web框架有很多。除了Flask,还有django、Web2py等等。其中Django是目前Python的框架中使用度最高的。但是Django如同java的EJB(EnterpriseJavaBeansJavaEE服务器端组件模型)多被用于大型网站的开发,但对于大多数的小型网站的开发,使用SSH(Struts+Spring+Hibernat的一个JavaEE集成框架)就可以满足,和其他的轻量级框架相比较,Flask框架有很好的扩展性,这是其他Web框架不可替代的。
1.6B/S体系工作原理
B/S架构采取浏览器请求,服务器响应的工作模式。
用户可以通过浏览器去访问Internet上由Web服务器产生的文本、数据、图片、动画、视频点播和声音等信息;
而每一个Web服务器又可以通过各种方式与数据库服务器连接,大量的数据实际存放在数据库服务器中;
从Web服务器上下载程序到本地来执行,在下载过程中若遇到与数据库有关的指令,由Web服务器交给数据库服务器来解释执行,并返回给Web服务器,Web服务器又返回给用户。在这种结构中,将许许多多的网连接到一块,形成一个巨大的网,即全球网。而各个企业可以在此结构的基础上建立自己的Internet。
在 B/S 模式中,用户是通过浏览器针对许多分布于网络上的服务器进行请求访问的,浏览器的请求通过服务器进行处理,并将处理结果以及相应的信息返回给浏览器,其他的数据加工、请求全部都是由Web Server完成的。通过该框架结构以及植入于操作系统内部的浏览器,该结构已经成为了当今软件应用的主流结构模式。
1.7 Mysql描述
现在Mysql数据库在网络上它可以支撑许多个用户,而且也可以适应客服机和服务器的部署或者配置等,我们这里的服务器和客户机其实就是一种软件上的概念,并且我们使用的计算机硬件也与他们不存在一一对应的关系。
Mysql是一款非常流行的关系型数据库管理系统,它的出现一直都是佼佼者,它不仅功能非常强大,而且使用起来非常方便,并且Mysql的跨平台能力也很好,软件开发人员非常喜欢它的这些强大的优点。不同于其他关系型数据库,对于数据库的管理它有着自己的一套方案,通过对用户设定相应的权限和角色来达到对数据库的管理。由此可见,Mysql是一个能够适用于吞吐量高,可靠性高,效率高的一款数据库管理软件。
优点一:Mysql中对于不同身份的用户都设定其不同的权限来完成不同的业务逻辑,这使得Mysql在安全和完整性远远超出了其他关系型数据库。
优点二:对于那些动画、图形和声音的数据类型Mysql也可以支持,这说明多数据类型Mysql也是可以支持的。
优点三:Mysql还可以做到多个平台的开发,软件开发的多种编程语言都可以实现对Mysql数据库的操作。
2 基于爬虫技术的“营库”微信小程序的需求分析
基于爬虫技术的“营库”微信小程序 在数据的存储上使用的MYSQL数据库,在基于爬虫技术的“营库”微信小程序 开发中使用了了python、HTML、pycharm、Flask这些开发工具的使用,能够给我们的编写工作带来许多的便利。系统使用B/S模式进行开发,使系统的可扩展性和维护性更佳,减少系统配置代码,简化编程代码,目前B/S模式是目前最受欢迎的一种模式。
在开发基于爬虫技术的“营库”微信小程序 中所使用的开发软件像pycharm开发工具、tomcat服务器、Flask开发框架、MySQL5.7数据库、Photoshop图片处理软件等,这些环境从网上就能免费下载,而且网上都有安装的教程,根据教程一步一步的操作,就可以安装成功,不需要花任何费用,并且基于爬虫技术的“营库”微信小程序 是自己设计并编码实现的,数据库是使用流行mysql进行数据的存储,开源的mysql等技术的使用,减少系统开发费用。
2.1.3操作可行性分析
此次项目设计的时候我参考了很多类似系统的成功案例,对它们的操作界面以及功能都进行了系统的分析,将众多案例结合在一起,突出以人为本简化操作,所以具有基本计算机知识的人都会操作本项目。因此操作可行性也没有问题。
业务流程是用一些特定的符合和线条来进行演示用户在使用系统时的过程,在进行系统分析的时候,业务流程可以帮助开发人员更好的理解业务,发现错误,完善系统。
用户成功登入系统后就能够实现增加数据的操作,增加数据的编号是特定的,系统生成,用户不能随意填写,除了编号以外,其他增加信息用户自己填写,填写后的信息经过系统验证,验证合法通过就显示增加数据成功了,相反的话,就没有增加成功,图2-1显示的就是在增加数据时的流程。
图2-1 数据增加流程图
数据修改时的流程和上面介绍的数据增加时的流程差不多,如图2-2所示。
图2-2 数据修改流程图
如果系统里面存在一些没有用的数据的话,相关的管理人员还可以对这些数据进行删除,图2-3就是数据删除时的流程图。
图2-3 数据删除流程图
基于爬虫技术的“营库”微信小程序划分为了管理员模块以及用户模块这两大部分。
用户管理模块:
(1)用户登录:用户登录基于爬虫技术的“营库”微信小程序;用户可以对个人信息进行修改。
(2)收藏:“收藏”按钮的时候就会显示出自己收藏的各种信息了,支持对收藏信息的搜索查询,如果你想不再收藏某一信息,点击取消就可以了。
管理员:
(1)登录:管理员在后台可以通过账号和密码进行登录,管理员的账号和密码是在数据库中直接设定的;
(2)个人信息:管理在登录以后可以修改自己的个人资料以及对自己账号登录的密码进行修改;
(3)用户:管理员点击“用户”这一菜单会显示用户这个子菜单,管理员可以对这个角色的信息进行删改查操作;
(4)对营信息进行编辑、删除等操作;
2.3.2非功能性需求分析
基于爬虫技术的“营库”微信小程序的非功能性需求比如基于爬虫技术的“营库”微信小程序 的安全性怎么样,可靠性怎么样,性能怎么样,可拓展性怎么样等。具体可以表示在如下2.1表格中:
表2.1 基于爬虫技术的“营库”微信小程序非功能需求表
安全性 | 主要指基于爬虫技术的“营库”微信小程序 数据库的安装,数据库的使用和密码的设定必须合乎规范。 |
可靠性 | 可靠性是指基于爬虫技术的“营库”微信小程序 能够安装用户的指示进行操作,经过测试,可靠性90%以上。 |
性能 | 性能是影响基于爬虫技术的“营库”微信小程序 占据市场的必要条件,所以性能最好要佳才好。 |
可扩展性 | 比如数据库预留多个属性,比如接口的使用等确保了系统的非功能性需求。 |
易用性 | 用户只要跟着基于爬虫技术的“营库”微信小程序 的页面展示内容进行操作,就可以了。 |
可维护性 | 基于爬虫技术的“营库”微信小程序 开发的可维护性是非常重要的,经过测试,可维护性没有问题 |
基于爬虫技术的“营库”微信小程序 中用户角色用例图如图2.1所示:
图2.1用户角色用例图
基于爬虫技术的“营库”微信小程序 中管理员角色用例图如图2.2所示:
图2.2管理员角色用例图
本章主要讨论的内容包括基于爬虫技术的“营库”微信小程序的功能模块设计、数据库系统设计。
3.1 系统架构设计
本基于爬虫技术的“营库”微信小程序从架构上分为三层:表现层(UI)、业务逻辑层(BLL)以及数据层(DL)。
图3-1基于爬虫技术的“营库”微信小程序架构设计图
表现层(UI):又称UI层,主要完成本基于爬虫技术的“营库”微信小程序的UI交互功能,一个良好的UI可以打打提高用户的用户体验,增强用户使用本基于爬虫技术的“营库”微信小程序 时的舒适度。UI的界面设计也要适应不同版本的基于爬虫技术的“营库”微信小程序以及不同尺寸的分辨率,以做到良好的兼容性。UI交互功能要求合理,用户进行交互操作时必须要得到与之相符的交互结果,这就要求表现层要与业务逻辑层进行良好的对接。
业务逻辑层(BLL):主要完成本基于爬虫技术的“营库”微信小程序的数据处理功能。用户从表现层传输过来的数据经过业务逻辑层进行处理交付给数据层,系统从数据层读取的数据经过业务逻辑层进行处理交付给表现层。
数据层(DL):由于本基于爬虫技术的“营库”微信小程序的数据是放在服务端的mysql数据库中,因此本属于服务层的部分可以直接整合在业务逻辑层中,所以数据层中只有数据库,其主要完成本基于爬虫技术的“营库”微信小程序的数据存储和管理功能。
3.2系统顺序图设计
3.2.1登录模块顺序图
登录模块主要满足了管理员以及用户的权限登录,登录模块顺序图如图3-2所示。
图3.2登录顺序图
3.2.2删除信息模块顺序图
管理员登录后可进行删除信息操作,删除信息模块顺序图如图4-4所示。
图3.3 删除信息顺序图
3.3系统功能模块设计
基于爬虫技术的“营库”微信小程序的用户类型主要包括用户和管理员两类,按照操作对象不同,所具有的操作权限不尽相同。根据不同角色的用户,功能设置要做到通用性和个性化上要兼而有之,保证客户群体的最优化。同时,功能模块需要逻辑清楚、功能与实际紧密结合,避免产生系统漏洞,确保系统正确有效地运行。主要功能设计如图3.4所示。
图3.4基于爬虫技术的“营库”微信小程序功能模块图
3.4数据库设计
数据库设计一般包括需求分析、概念模型设计、数据库表建立三大过程,其中需求分析前面章节已经阐述,概念模型设计有概念模型和逻辑结构设计两部分。
3.4.1 数据库概念结构设计
下面是整个基于爬虫技术的“营库”微信小程序中主要的数据库表总E-R实体关系图。
图3-3 基于爬虫技术的“营库”微信小程序总E-R关系图
通过上一小节中基于爬虫技术的“营库”微信小程序中总E-R关系图上得出一共需要创建很多个数据表。在此我主要罗列几个主要的数据库表结构设计。
名称 | 类型 | 长度 | 不是null | 主键 | 注释 |
gid | int | 11 | 是 | 是 | |
gname | varchar | 20 | 否 | 否 | |
gdetail | varchar | 1000 | 否 | 否 | |
gphoto | varchar | 50 | 否 | 否 | |
gtime | varchar | 100 | 否 | 否 | |
gonshow | int | 255 | 是 | 否 | |
order | |||||
名称 | 类型 | 长度 | 不是null | 主键 | 注释 |
oid | int | 11 | 是 | 是 | |
uid | int | 11 | 否 | 否 | |
accepted | int | 11 | 是 | 否 | |
totaltime | decimal | 10 | 否 | 否 | |
otime | datetime | 0 | 否 | 否 | |
address | varchar | 255 | 是 | 否 | |
phone | varchar | 20 | 是 | 否 | |
courier | int | 11 | 否 | 否 | |
courier_phone | varchar | 20 | 否 | 否 | |
user | |||||
名称 | 类型 | 长度 | 不是null | 主键 | 注释 |
uid | int | 11 | 是 | 是 | |
uname | varchar | 20 | 否 | 否 | |
uphoto | varchar | 255 | 否 | 否 | |
uaddress | varchar | 50 | 否 | 否 | |
upassword | varchar | 50 | 否 | 否 | |
uphone | varchar | 50 | 否 | 否 |
4 关键模块的设计与实
基于爬虫技术的“营库”微信小程序 的详细设计与实现主要是根据前面的基于爬虫技术的“营库”微信小程序的需求分析和基于爬虫技术的“营库”微信小程序的总体设计来设计页面并实现业务逻辑。主要从基于爬虫技术的“营库”微信小程序界面实现、业务逻辑实现这两部分进行介绍。
4.1登录模块
将首页的左边的功能设计为登录的位置,所以在进行登录的地方就会显示首页。在登录后就是大众较为熟悉的位置,也就是让用户进行账号以及密码输入的样式。
当用户输入完信息并点击登录按钮时,Struts就会将用户输入的信息传递进表单并装入相应的对象之中,然后再转到相应位置进行校验。若用户名和密码框都是空的,那么系统就会不可将账号密码均设置为空值。
系统的底层设置要求账号密码不可以都是空值,将这些信息传递给相关的类中的对象方法并调用相关的信息,对于用户输入的数据进行检验。若检验结果正确会自动转到系统首页欢迎页面,如果不正确系统就会返回用户登录界面。
登录流程图如下所示。
图4.1 登录流程
系统登录界面如下图所示。
图4.2 登录界面图
4.2首页模块
首页主要分别展示各个模块的最新动态,浏览者可以很清楚地看到不同模块的最新更新内容。并且系统首页每个部分可以跳转到相对应的模块,方便浏览者选择感兴趣的地方。
首页载入流程图如下所示。
图4.3 首页载入流程
首页界面如下图所示。
图4.4 首页界面图
4.3管理员编辑详情模块
管理员编辑详情页面可查看营编辑、完成等信息操作。
图4.5管理员编辑详情界面图
图4.6用户详情界面图
4.4个人信息修改模块
用户使用该基于爬虫技术的“营库”微信小程序注册完成后,用户对登录密码有修改需求时,系统也可以提供用户修改密码权限。系统中所有的操作者能够变更自己的密码信息,执行该功能首先必须要登入系统,然后选择密码变更选项以后在给定的文本框中填写初始密码和新密码来完成修改密码的操作。在填写的时候,假如两次密码填写存在差异,那么此次密码变更操作失败,下面的图片展示的就是该板块对应的工作面。
密码修改流程图如下所示。
图4.6 密码修改流程图
个人信息修改界面如图所示。
图4.7 个人信息修改界面图
4.5管理员编辑模块
管理员编辑页面可查看营信息编辑、删除等信息操作。
管理员编辑界面如图所示。
图4.8 管理员编辑界面图
4.6地址修改模块
地址修改页面可查看地址信息、设置等信息操作。
地址修改界面如图所示。
4.7号码修改模块
号码修改页面可查看目前号码信息、设置等信息操作。
号码修改界面如图所示。
图4.10号码修改界面图
5 系统测试与结果分析
5.1目的与意义
作为软件开发过程中最后一项任务,软件测试通常情况下是在设计完成后才进行的,但是,现如今,软件测试的要求是在完成每一个小开发后,都得马上开始测试该部分的性能,这样做的好处在于,经过测试可以快速发现问题,马上对其处理,防止由于系统小错误的累积引起更严重的后果,这样可以极大地节省了系统开发的资源。首先得明确本系统测试的需求,了解本系统在功能与性能方面测试的详细指标,再根据以上信息构建具体的测试环境,值得注意的是,构建的测试环境要与日后系统上线的真实环境类似,这样才能够尽可能地找到系统潜在的问题,最后,根据测试的功能与性能选择合适的测试方法。本系统在测试时选择的测试方法是模块化测试,对系统的各个模块依次测试,测试它们的功能与性能,按照测试的结果,对暴露出来的问题进行整改,保障系统在真实环境中上线后能够正常的运行。软件测试是软件开发的必要步骤和重要环节,没有软件测试,开发者将无法对软件的覆盖性、完善性、正确性进行评估,同时也无法给出软件运行的参数指标,软件测试是评测软件的唯一标准。软件测试有着标准的测试规范和内容,通过测试,可以减少软件运行问题,保证软件投入使用后运行状态良好。软件测试流程图包括数据测试、期望结果评价及信息纠错,如图5.1所示。
图5.1 测试与纠错信息流程
5.2 系统测试方法
1.黑盒测试
黑盒测试作为常用的简便的系统检测方法,主要是指忽视系统实现过程中的细节问题,以用户为视角,结合设定的输入输出对应关系,编写相应的测试用例,通过用例实现对系统各项功能的测试。当系统存在功能性问题时,则测试用例不会通过,从而证明系统存在错误,因此也将该项测试称之为功能测试。
2.结构测试
区别于黑盒测试只关注功能、忽视系统细节的特点,结构性测试侧重于对系统代码的检测,通过该项测试,研发人员能够发现系统代码中所存在的问题,因此也将其称之为基于代码的测试。该项测试的核心在于对系统实现结构以及相关代码进行检测,以代码为视角,对系统的准确性进行检测。
3.压力测试
压力测试则是从具体的使用情景出发检测系统。当系统功能检测完成后,则后续需要考虑整个系统运行以及部署的可靠性,该项测试的关键在于分析软件在运行负荷极限情况下能够承受的负荷。科学的系统应当在确保满足功能性需求的前提下,还应当确保其能够在实际的应用场景中能够承受用户访问、运算的压力,从而提高用户的使用感受,所以压力测试也是系统测试流程过程中非常重要的环节。
系统测试采用“黑盒测试”法。采用“黑盒测试”的软件测试,测试者将不再关注程序模块的内部结构和逻辑关系,程序模块提供给测试者的仅仅是输入、输出接口,测试者将关注测试内容、结果是否与标准一致。测试者需要做的工作是列举测试用例,测试范围需要涵盖运行的各种可能,测试用例的少列举或漏列举都有可能导致软件测试分支达不到,进而为今后的实际使用埋下隐患。通过在不同的测试用例条件下测试,检验测试结果与实际期望结果的一致性。
5.3 测试小结
依据“黑盒测试”用例,对通过编写基于爬虫技术的“营库”微信小程序进行了软件测试,针对测试中出现的问题进行了软件问题查找和漏洞捕获,并对软件进行修正。经过修正后的软件,又进行了系统测试,系统测试覆盖全流程,测试结果符合前期要求,性能稳定,实现了全部功能目标。
6 结论
在开发本基于爬虫技术的“营库”微信小程序之前我胸有成竹,觉得很简单,但在实际的开发中我发现了自身的很多问题,许多编程思想和方法都还没有掌握牢靠,比如Flask、pycharm、HbuildX等许多python Web开发技术,通过开发这个基于爬虫技术的“营库”微信小程序 我成长了很多,懂得了做什么事情都要脚踏实地,不能眼高手低,在本次基于爬虫技术的“营库”微信小程序 的开发中我逐渐掌握逐渐熟悉的技术。
本次基于爬虫技术的“营库”微信小程序 的开发中我还学会了很多,例如良好的编程思想和完善的规划思想。在着手编程之前需要罗列出程序框架的大概,脑海中构建出程序的主题框架。做好这一步我们才能胸有成竹的经行开发项目。当设计框架了熟于心之后,需要思考本次编程所需的主要知识点和技术点,并充分学习。如此一来项目的开发才能循序渐进、如丝般顺滑,长久以往就能养成良好的开发习惯。一个程序好不好还要看出的bug多不多,如果在项目完成前做好bug的查验与预防可能发生的事故才能保证程序的稳定长久性运行。如果项目在完工后出现各种问题自己,那么在进入社会后,不仅会给公司团队带来麻烦和增加不必要的工作,还会导致客户流失,公司对自己的评价下降。
在本次项目中我也暴露了诸多问题。对于python的编程知识有所欠缺,环境配置和算法上出现诸多问题,时常导致项目运行出错,或者目标的实现有问题。或者实现想法时算法未优化,使得代码冗长,程序运行不顺畅。
[1] 嵩天,礼欣,黄天羽. Python语言程序设计基础[M].北京:高等教育出版社.2017
[2] 胡阳. Django企业开发实战[M].北京:人民邮电出版社
[3] 张海藩,吕云翔. 软件工程[M].北京:人民邮电出版社,2013.
[4] 谭峰,文升. PostgreSQL实战[M].北京:机械工业出版社,2018
[5] 周洁.数据库技术及应用实践教程[M].北京:电子工业出版社.2018
[6] 徐盈之,孙剑.信息产业与制造业的融合——基于绩效分析的研究[J],中国工业经济,2009
[7] 李晓钟,陈涵乐,张小蒂.信息产业与制造业融合的绩效研究——基于浙江省的数据[J],中国软科学(第1期),2017
[8] 岳云嵩,李兵. 电子商务平台应用与中国制造业企业出口绩效——基于“阿里巴巴”大数据的经验研究[J],中国工业经济(第8期),2018
[9] 刘志凯,张太红. Django框架在web开发中的应用[J].农业网络信息(第2期).2015
[10] 王伊,王韶红,刘晋泽,吕佳宪. Vue.js与Django组合框架的网络社交系统单页面架构方案设计[J]. 信息技术与信息化(第1期).2020
[11] 张翠丽,孟小艳,杨抒. 基于Django框架的管理系统的设计与开发[J]. 计算机技术与发展(第10期).2019
[12] Said Naser Said Kamil1,Nigel Thomas.Investigating the Cost of Transfer Delay on the Performance of Security in Cloud Computing,Electronic Notes in Theoretical Computer Science 337(2018)105-117
致谢
到此,整个基于爬虫技术的“营库”微信小程序 就算完成了,虽然过程十分艰难,但是等到都完成的时候,我感觉无比的自豪,虽然设计的系统还存在许多的纰漏,但是我已经拼劲全力,给自己的大学四年画上了一个圆满的句号。
在这里我首先要感谢的就是大学四年来所有教导我的老师,是他们教会了我许多的专业知识以及做人的道理,从一进校门对对开发系统一窍不通到现在能自主开发一个管理系统,里面包含了前台框架、后台框架、业务流程、数据结构、操作系统等各种知识,只有把他们统一运用好,才能够完成整个系统,这都是老师的功劳;其次我要感谢我的指导老师,在开发这个系统的时候,我遇到了无数的问题,经常通过线上、线下的方式去请教导师,每次去请教导师,他从来没有不耐烦,都是细心的引导,告诉我怎么样实现这个功能,怎么样才能使得系统更加完善,然后通过自己查询相关资料解决问题,提高了自己自主解决问题的能力,授人以鱼不如授人以渔,指导老师的这种工作态度受益终生,我也会向老师不断靠拢,向他学习,在此我只想说一句:“老师,谢谢您,您辛苦了”!最后我还要感谢我的室友、同学,在一起学习这四年,他们不但学习上给了我很多建议,在生活上更加给了我帮助,正是有他们的帮助,我的大学生涯才如此完美。
最后,希望自己在未来的道路上能够越走越远,不辜负在大学的学习以及老师们的细致的教导,追风赶月莫停留,平荒尽处是春山。
点赞+收藏+关注 →私信领取本源代码、数据库
关注博主下篇更精彩
一键三连!!!
一键三连!!!
一键三连!!!
感谢一键三连!!!