一个实用的测试技巧

测试需求

由于架构调整,需要重新测试一个文件的上传解析。

跟开发同学了解测试范围时,得到的信息是这样的:有一个上传txt文件的页面,只要保证把特定格式的txt文件通过那个页面上传,然后到浏览器中访问“url/文件名.txt”,只要返回 文件名,就算测试通过。不需要考虑异常情况,如文件内容错误等。

测试过程

在版本送测后,发现开发同学给的url有二十来个,文件有四十来个。开发同学的期望是首先看看是否url都是通的,最好是能把所有的文件都看一看能不能解析。

此时距离代码封版只有一小时,如果全测的话组合得有20*40=800个,一分钟2个也得400分钟。这确定不是在玩我?

好吧,无论如何活还得接着干。先用同一个文件把所有url测试一遍,看看url有没有问题,其他的再说吧。

在上传了第一个文件后,灵机一动,如果不上传文件,直接在url中输入“url/文件名.txt”,会有什么现象?

试了一下,发现也能解析成功。这是什么情况?然后找到开发同学,balabalabala。。。最后确定这样也可以。

那问题就简单了!

把域名和文件名都列到一个excel中,用Python写一段小程序就可以解决了,整个过程二十分钟,轻松加愉快!

#!/usr/bin/env python

# -*- coding: utf-8 -*-

# @Time : 2017/10/13 20:58

# @Author : King

# @Site :

# @File : testx.py

# @Software: PyCharm

import xlrd

import requests

case_list = []

book = xlrd.open_workbook(u'7985需求测试.xlsx')

sheet = book.sheet_by_index(3)

xlist = []

ylist = []

for line in range(1,sheet.nrows):

if sheet.cell(line, 0).value != '':

xlist.append(sheet.cell(line, 0).value.strip())

if sheet.cell(line, 1).value != '':

ylist.append(sheet.cell(line, 1).value.strip())

for x in xlist:

for y in ylist:

case_list.append(x + '/' + y)

for case in case_list:

url = 'http://' + case

try:

res = requests.get(url)

if res.text in url:

# print('success')

pass

else:

print(url)

except Exception as e:

print(str(e))

print(url)

其他思考

不过如果不会写程序,这个情况下怎么处理呢?

想了一下,可以借助excel快速把url巡检一遍,如下:(下表中的域名和文件名是仿照真实数据随意编的)

只要把域名和文件组合成C列的样式,然后把这个路径复制到浏览器中查看是否能解析成功就可以了。表中在获取B列和C列的时候用了一个组合字符串的方式,在图中标记出来了。

原文发布于微信公众号 - 软件测试经验与教训(udatest)

原文发表时间:2017-10-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏张善友的专栏

CentOS 7 搭建基于携程Apollo(阿波罗)配置中心单机模式

2576
来自专栏Golang语言社区

从零开始实现RPC框架 - RPC原理及实现

RPC(Remote Procedure Call)即远程过程调用,允许一台计算机调用另一台计算机上的程序得到结果,而代码中不需要做额外的编程,就像在本地调用一...

1953
来自专栏小白安全

小白博客 Kali Linux - 开发工具介绍及应用

在本章中,我们将学习Kali Linux提供的各种开发工具。 Metasploit的 正如我们之前提到的,Metasploit是Rapid7的产品,大...

4126
来自专栏北京马哥教育

Python开源项目介绍:用zmail简单地发邮件

转载自:Python中文社区 ID:python-china 发送邮件是个很简单的需求,但是在实际的使用中依然碰到了很多坑,因此创建了zmail这个项目...

2856
来自专栏沈唁志

宝塔面板Mysql 5.6版本无法正常启动的解决方法

朋友找我的时候说的是 Mysql 启动不了,看他发的截图是宝塔面板,就要来了面板信息去看了一下

2.1K2
来自专栏张善友的专栏

CentOS 7 搭建基于携程Apollo(阿波罗)配置中心单机模式

Apollo(阿波罗)是携程框架部门研发的配置管理平台,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理...

1.3K6
来自专栏程序工场

apache和tomcat区别

经常在用apache和tomcat等这些服务器,可是总感觉还是不清楚他们之间有什么关系,在用tomcat的时候总出现apache,总感到迷惑,到底谁是主谁是次,...

932
来自专栏北京马哥教育

25个Linux服务器安全小贴士,总有一条用得上!

大家都认为 Linux 默认是安全的,我大体是认可的 (这是个有争议的话题)。Linux默认确实有内置的安全模型。你需要打开它并且对其进行定制,这样才能得到更安...

37112
来自专栏MoeLove

Linux上源码编译MongoDB

MongoDB的官网上是有已经编译好的二进制包的,这里选择clone MongoDB在github上的仓库

1363
来自专栏cmazxiaoma的架构师之路

FastDFS蛋疼的集群和负载均衡(十一)之清除Nginx文件缓存

3033

扫码关注云+社区

领取腾讯云代金券