• 0
  • 0
分享
  • 开始一个简单的接口测试(Python)——软件测试圈
  • 北极 2021-04-01 13:10:38 字数 1702 阅读 948 收藏 0

利用python发送第一个请求

关于HTTP请求,建议大家提前了解一下,再来看该篇文章

该篇文章以简单的登录接口为例,干货来了:

首先利用python发请求就会用到request库,先导入进来

import requests

导入该库之后,就开始代码主体部分了

#首先我们要把我们要测试接口API写进来
url="http://localhost:8080/jwshoplogin/user/login.do"
#紧接着把我们需要的参数定义一下
userinfo={"username":"大娟",
           "password":"Aa111111"}
#参数定义完成后,就该让这个请求带着这个参数去乖乖的请求服务器了,下面的代码意思为将响应回来的信息以文本格式给到res
res=requests.post(url,data=userinfo).text
#得到响应信息后,将他打印出来
print(res)

1.png

这个为该接口正常响应回来的信息,作为测试我们当然要写个断言来判断他响应回来的对不对嘛,

#.find这个方法是在响应回来的信息里面找登录成功四个字,找不到会返回-1负一的值
msg=res.find("登录成功")
if msg>0:
    print("测试通过")
else:
    print("测试失败")

一个简单的接口测试就这么完成了。

将请求参数进行参数化处理

这时候我们用到的是csv文件,现将csv库倒进来,还有我们必要的request库

import request
import csv

下面是代码主体,具体解释我会写进代码里

url='http://localhost:8080/jwshoplogin/user/login.do'
#上面url就不解释了,但是userinfo我要说下,这里为空是因为我一会在文件里读取的内容放到这里面
userinfo={}
#下面的两个是对文件的操作,r为对文件读(read),w为对文件写(write)
file1=open("interfacePara.csv",'r')
file2=open("loginResult.csv","w")
#这个意思为将读出来的内容放到table里面
table=csv.reader(file1)

我先把interfacePara.csv文件的样子给大家看下

2.png

这三列分别为用户名,密码,以及预期结果

接下来我们要用循环方式去判断每一用户是否登录成功

for row in table:
#第一次循环
#将读到的第一行第一列的值给到username
    userinfo["username"]=row[0]
#将读到的第一行第二列的值给到password
    userinfo["password"]=row[1]
#这时候userinfo拿到的值为username="大娟",password="Aa111111"
    response=requests.post(url,data=userinfo).text
#查看一下响应回来的信息
    print(response)
    print(row[2])
 #在响应回来的信息里面找csv文件里的第一行第三列的值,然后做判断,写到文件loginResult.csv里面
    r=response.find(row[2])
    if r>0:
        print("测试通过")
 #因为在csv文件里每个分割是用逗号分割的所以这个要加上逗号,而且是英文格式的大家不要搞错,"\n"是换行的意思
        file2.write(row[0]+","+row[1]+","+row[2]+","+"测试通过"+"\n")
    else:
        print("测试异常")
        file2.write(row[0] + "," + row[1] + "," + row[2] + "," + "测试失败" + "\n")


作者:芳草乀

原文链接:https://blog.csdn.net/weixin_39624227/article/details/114794524

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   线性回归是机器学习中最基础的模型。虽然相较而言其结构简单且易理解,但其不仅能体现出机器学习重要的基本思想,还能构造出功能更加强大的非线性模型,对于后续机器学习算法的不断发展起了至关重要的作用。  在数理统计中,回归分析是确定多种变量间相互依赖的定量关系的方法。线性回归假设输出变量是若干输入变量的线性组合,并根据这一关系求解线性组合中的最优系数。在众多回归分析的方法里,线性回归模型最易于拟合,其估计结果的统计特性也更容易确定,因而得到广泛应用。而在机器学习中,回归问题隐含了输入变量和输出变量均可连续取值的前提,因而利用线性回归模型可以对任意输入给出对输出的估计。  1875年,从事遗传问题研...
            13 13 1055
            分享
          • 最近公司业务快速发展,整个研发团队都在加紧招聘人员,我主要负责测试和运维的初面,偶尔参与二面。从年前到今天为止,陆陆续续收到简历仅百人(测试占大多数),进入初面的大概50%,初面通过的不到30%,进入二面就更少了,还有在面试通过后被 HR 干掉的。企业招聘基本上都是找最“合适”的人,而不是找技术最牛或最优秀的人。主要原因:一是岗位匹配度;二是性价比问题。简历筛选以测试工程师的招聘来说说简历筛选过程。HR 筛选HR一般会按照招聘要求中的关键字来搜索简历,比如接口自动化测试、性能测试、某些编程语言及工具、行业领域、专业证书等。前期简历基本是海选+投递。中后期面试官根据简历的质量,会适时调整招聘要求...
            4 2 4088
            分享
          •   在日常工作中基本每天都会与时间类型打交道,比如数据库每条数据的创建时间,更新的时候需要写入的更新时间,那么问题来了,如下:  它是要 UTC Time(世界统一时间)还是要本地时间?  日期的格式要怎么格式化?  我如果得到的是一个时间戳,我该怎么转成目标时间?  我如果想把数据库的时间转成时间戳我改怎么处理?  等等等等  上面说的这些,不复杂,但是你不能不知道,如果连这类的基础在用到的时候都需要去检索,那么就不用谈效率了。  下面,咱们通过几个实例,一起来看一下使用 datetime 这个库做日期和时间的管理和转换。  实例 1:获取当前时间import time from&...
            0 0 799
            分享
          • 【摘要】随着互联网金融的兴起,互联网企业依托互联网,特别是移动互联网为公众提供越来越多方便快捷、稳定高效的金融类服务,对传统的银行业务带来了很大冲击。作为应对,传统银行也在业务上不断创新,带来对IT基础设施和应用架构方面进行转型升级的要求,譬如银行内部的业务系统在开发、测试、部署、以及运维还以传统模式为主,无法满足业务创新要求的快速、弹性、敏捷等特性,同时也缺少整合、高效的基础设施平台支撑。近年云计算技术发展和云原生技术的不断迭代演进,云原生产品能力也在不断成熟和完善,云原生架构逐渐成为传统银行的IT架构选型方向。传统银行基于云原生技术建设并推广适合自身的容器云平台,实现传统应用迁移上云和云原...
            0 0 2078
            分享
          • (1)MantisMantis是一个基于PHP技术的轻量级的开源缺陷跟踪系统,其功能与JIRA系统类似,都是以Web操作的形式提供项目管理及缺陷跟踪服务。在功能上可能没有JIRA那么专业,界面也没有JIRA漂亮,但在实用性上足以满足中小型项目的管理及跟踪。Mantis基本功能介绍http://tb.blog.csdn.net/TrackBack.aspx?PostId=作者:龚云卿???? 2005年8月1、简介缺陷管理贯穿于整个软件开发生命周期中, 是不可缺少的环节。Mantis是PHP/MySQL/Web-based缺陷跟踪系统,Mantis当前版本为1.0.0a3。关于产品详细信息和支持...
            15 15 1434
            分享
      • 51testing软件测试圈微信