一个网站自动化测试程序的设计与实现

news/2024/5/20 0:50:36/文章来源:https://blog.csdn.net/chulilang8944/article/details/100895643

CSDN博客不再经常更新,更多优质文章请来 粉丝联盟网 FansUnion.cn! (FansUnion)


代码

下载地址:http://download.csdn.net/detail/fansunion/5018357(免积分)
   
代码亮点:可读性很好,注释详尽

背景

       工作中,在维护一个项目。几个月前开始了 后台Java网站的重构。
  
重构的过程 需要不断去 运行网站,然后不断去测试。其中,最常见的

问题是 服务器内部错误 即 500错误。只要不出现500,一般来说,程序的业务不会出错。

      此外,期间还要不断地去 完成新的功能,修复出现的Bug,而后台Java网站具体开发人员几乎就我一个。

无限制的测试工作,重复且无聊。是可忍,孰不可忍?

目标
  
       写一个 自动化测试的程序。自动发送相关请求到网站,把请求的结果和执行时间等信息,作为报表展现出来。
 通过报表就可以发现,服务器内部错误(500),页面未找到错误(404),哪些请求相对比较耗时。
   
       重复的事情自动化,减轻工作“压力”,提高工作效率。
   
流程
      1.把项目中需要访问的URL 记录在配置文件中。
      2.读取配置文件。
      3.访问每个URL。
      4.生成报表并查看测试结果。

设计
  
   1.配置文件的设计
      conf文件下是所有的配置信息。
      每一个文件夹代表一个独立的网站,比如conf目录下 有 user和fans2个文件夹,就代表有2个网站需要分别访问测试。
 
      一个网站的配置信息,分为 website_core.properties和 website_url_*.properties。
  
 website_url_*.properties专门放置一个模块的url。
  
   2.读取配置文件
     自定义一个 配置文件读取器,读取并解析配置信息。
  
   3.发送请求并保存结果
     使用Apache HttpClient执行请求,然后保存每个请求的执行结果到 集合中。
  
   4.生成报表 
     ApachePOI 生成Excel2007(.xlsx)报表,每个sheet对应一个网站或者子系统。
实现
   语言:Java
   工具:Apache HttpClient,Apache POI

截图

    项目结构  

 
  

遇到的问题

1. 200 OK 不一定就 请求成功。

   服务器内部对每个请求都进行了Session检查,未登录或登录失败或未保持会话,都会跳转到“登录页面”,此时也是200 OK。
 
   因此,需要 先登录,并保存当前会话。

2. 保持会话的方法。
   登录成功后,获取Cookie信息,之后的请求每次都带上Cookie。
 
3. 根据执行的操作,一个链接可以分为2大类:

   查询与非查询(增加-删除-修改)。
  
   查询请求大多有默认参数,大多可以不带参数,而非查询请求一般需要带参数。
  
   因此,非查询请求并不能很好地进行测试。
    
V1.0不足与V1.1改进

1.需要手动配置 URL。当URL过多时,显得比较麻烦。
  改进:可以合并类似的或者有规律的URL。

2.不能很好地支持带参数的请求。
  改进:可以将请求参数和URL分开配置,一个URL对应多个参数配置。
 
3.请求方法使用POST方法。
  改进:增加请求方法的配置。

4.单线程顺序执行每个请求,效率不够高。
  开发过程中,可能需要尽快地执行请求,看到报表。
 
  改进:增加配置,实现2种模式。
  第1种,尽快执行,适合开发过程中。
  第2种,按照一定的周期执行,适合诊断和发现线上的问题。
 
5.报表信息不够详尽,还存在不准确的地方。
  改进:增加字段,改进不准确的地方。
        增加统计功能。

6.会话的保持。一个网站只有1个账号登录,之后的请求都在同一个会话中。
  改进:增加多个会话,作用域小的可以覆盖大的。
 
7.配置信息的验证不足。
  改进:待细化。

结束语
   代码重复是软件开发的大敌!
   测试重复又何尝不是呢?
   

致谢
   第1版问题多多,望海涵!
  
   谢谢阅读!欢迎交流!

 

转载于:https://my.oschina.net/FansUnion/blog/409254

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_750514.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

假如我来架构12306网站

笔者连日来也萌发了一个想法,假如让我来设计12306网站,我作为总架构师,该当如何考虑呢?自己虽然经历过众多的大项目的全生命周期跟踪管理,对于软件工程应该是有一定的研究,但像如此巨型项目,应该…

万维网向公众开放20周年:全球首个网站重新上线

互联网改变了我们生活,学习和工作的方方面面,尤其是现在蓬勃发展的移动互联网更是将我们与互联网拉近了距离。昨天是万维网(World Wide Web)面向公众开放20周年的日子,是一个值得纪念的日子,故转载此文,以示纪念。 在万…

网站的发布和iis部署

第一步:在确保生成的网站没有问题的情况下,发布网站。右击-发布网站 第二步:保存路径(去掉允许更新此预编译站点) 第三步:生成成功,把生成的文件发布到IIS上。IIS是Internet Information Servic…

IIS网站部署常见问题汇总(乱码,服务器不可用)

在IIS上部署网站,运行时却是乱码一堆:先来看一张图片 最终得知问题出在网站属性设置上:(右击部署网站的属性) ASP.NET 选项:.NET 版本设置 部署网站时要不开发时用的.NET 版本保持一致,或者…

前端不错的网站

网址: http://www.whycss.com/http://f2er.club/转载于:https://www.cnblogs.com/yzenet/p/5820473.html

一个网站自动化测试程序的设计与实现

CSDN博客不再经常更新,更多优质文章请来 粉丝联盟网 FansUnion.cn! (FansUnion) 代码 下载地址:http://download.csdn.net/detail/fansunion/5018357(免积分) 代码亮点:可读性很好,注释详尽 背景 工作中,在维护一…

外链引入css有哪些方式_如何对网站进行seo 网站上线之后SEO会有哪些工作内容?...

企业网站的SEO优化外包给第三方是一种可取的方式,也可以自己建立一个搜索引擎优化团队。两种方法各有利弊,可以根据自己的情况选择。那么,如何建立一个可靠的seo团队呢?答案在于每一个细节岗位的人才技能,合适的人才的…

wordpress 可以添加woocommerce的分类到导航吗_分类目录 vs 标签:WordPress网站SEO之内容分类...

很多人都有一个疑问:分类目录 VS 标签,哪个对网站SEO更好?可能大部分人都不太清楚WordPress的分类目录和标签到底是什么,它们的区别之处在哪里。了解这些知识有助于各位站长正确使用分类目录和标签。本文摘自苦心孤译博客&#xf…

从零开始利用vue-cli搭建简单音乐网站(三)

1、利用router-link在组件之间传递数据 如上图,MainPage.vue中主要有8个推荐曲目数据,主要实现方式是建立好主页面模板,然后用v-for循环获取返回的music对象,然后分别绑定曲目,代码如下: ul作为承载8个曲目…

电商网站参考

1. 新都.云商汇 http://dijingvip.165183.cn/BusinessList.aspx?fromsinglemessage 2. 拼团商城 拼多多 https://www.pinduoduo.com/index.html?utm_sourcebaidubz&utm_mediumBrandZ&utm_term&utm_campaignsearch&utm_contentlogolink 3.微信小商城 古拉优选…

linux 部署.net网站后其它电脑无法访问_教程为知笔记私有部署,畅享所有 VIP 功能...

今天来玩玩为知笔记私有部署 docker 镜像,将为知笔记服务端部署在自己的服务器或者电脑上,全方位掌握自己的笔记信息,直接获得公版账号所有的的 VIP 功能。只需要启用为知笔记服务端,就可以利用自带的为知笔记网页版,…

宝塔linux如何安装asp程序,宝塔linux面板可以搭建运行asp网站程序吗

宝塔linux面板可以搭建运行asp网站程序吗?宝塔linux面板怎么支持asp?下面由宝塔教程栏目为大家详细介绍!首先登录到宝塔 Linux 面板 >> 软件管理 >> 运行环境中查看,发现 Linux 面板的运行环境中可以安装nginx、Apach…

mysql报错注入_网站SQL注入渗透测试手法介绍

国庆即将到来,前一期讲到获取网站信息判断所属环境以及各个端口的用处和弱口令密码利用方法,这期仍有很多客户找到我们想要了解针对于SQL注入攻击的测试方法,这一期我们来讲解下注入的攻击分类和使用手法,让客户明白漏洞是如何产生的,会给网站…

阿里云网站域名申请及备案

1. 2. 注册域名 转载于:https://www.cnblogs.com/liangfc/p/9469028.html

为什么打不开_电脑为什么打不开指定的网站?什么是DNS解析我要如何设置DNS

每天都浏览的一个网站突然间打不开了,明明网络没有问题,打开其它的网站都是正常的,为什么就突然打不开了呢?电脑为什么打不开指定的网站?什么是DNS解析我要如何设置DNS这时候我们要了解一下什么是DNS?DNS也…

Win2003下实现Web虚拟网站

Win2003下实现Web虚拟网站一、IP地址法 一般情况下,一块网卡只设置了一个IP地址。如果我们为这块网卡绑定多个IP地址,每个IP地址对应一个Web站点,那么同样可以实现“一机多站”的目的。 假定[url]www.ghq.com[/url]、study.ghq.com 和 …

ASP.NET网站国际化策略

1 问题提出 现在很多网站项目开发要求同时支持多国语言,所以在用户界面及程序的设计和开发中需采取国际化策略,以达到代码改动量小、网站部署便利,用户群广泛的目的。 2 解决策略 .NET Framework 为开发全球通用的应用程序…

如何让虚拟目录里面的webconfig不继承网站的设置

必須在上一层虚拟目录(如根目录)所在的Web.config加上 如&#xff1a;<location path"." allowOverride"false" inheritInChildApplications"false"> </location> 方法如下&#xff1a; 程序代码 <location path"." al…

python图片转svg_Python3.7将普通图片(png)转换为SVG图片格式并且让你的网站Logo(图标)从此”动”起来...

在之前的几篇文章中&#xff0c;介绍了业界中比较火爆的图片技术SVG(Scalable Vector Graphics),比如 Iconfont(矢量图标)iconmoon(图标svg互转)配合javascript来打造属于自己的个性化社交分享系统 ,我们可以使用svg来打造精美炫酷的分享小图标(icon)&#xff0c;这一次我们使用…

测试网站漏洞软件,如何检测网站漏洞,web漏洞扫描工具盘点

一、常见漏洞1、 高危漏洞 (自媒体www.777n.com)XSS跨站脚本漏洞&#xff1a;由于程序员在编写程序时对用户提交的数据没有做充分的合规性判断和进行HTML编码处理&#xff0c;直接把数据输出到浏览器客户端&#xff0c;这样导致用户可以提交一些特意构造的脚本代码或HTML标签代…