接口测试

如何设计接口测试用例

匿名 (未验证) 提交于 2019-12-02 23:32:01
接口测试的流程   接口测试也是属于 功能测试 ,所以跟我们以往的功能测试流程并没有太大区别,测试流程依旧是:1.测试接口文档(需求文档) 2.根据接口文档编写 测试用例 (用例编写完全可以按照以往规则来编写,例如等价类划分,边界值等设计方法) 3. 执行测试,查看不同的参数请求,接口的返回的数据是否达到预期。 接口测试和功能测试一样,流程也大致遵守V模型,请看下图 为什么要写用例 理清思路,避免漏测和重复测 提高测试效率 跟进测试进度 告诉领导做过 跟进重复性工作 更好的记录问题,发现问题,复现问题 同时这也是是接口测试流程中的一个产物(测试用例)   上面七点,结合自己测试实际经验,应该来说是很好理解和认同的。有用例,自己做到心中有数,不要一个测试点重复测好多次,就有思路,避免漏掉测试点。跟着用例测试,避免随机测试那种没有目的性的测试,提高测试效率。有用 例,上级问你完成的进度,你好用数据回答。有用例,用来标记你执行的结果,证明你做过测试。避免将来发生问题,人家说你没有测试,有数据和证据说话。有用例,测出问题你可以根据用例将问题轻而易举的浮现出来,不至于等你反馈或 者复现的问题时,你忘记是如何操作才回出现问题。接口测试也需要重复跑,跑几轮,或者用自动化天天跑。这样的重复性工作,用例可以保证每次重复做的是一样的情况。 接口主要设计用例点 主要从四个方面来设计接口用例:功能

Fiddler接口测试composer的坑一个

匿名 (未验证) 提交于 2019-12-02 23:32:01
Fiddler中composer是一个比较常用的测试工具。 最近在测试不同版本的HTTP请求的时候,发现composer在发送HTTP1.0请求的时候会补上Host字段,即便使用RAW模式也依然如此。 虽然现在大多数服务器也是允许HTTP1.0请求中包含Host字段的,但强制包含Host字段会无法达到某些特定的效果。 选择了HTTP0.9协议版本时,不光补上了Host字段,在请求行还凭空冒出了HTTP/0.9的协议版本。直接导致nginx无法处理请求…… 截图时没有搭NGINX,大致情况如下…… 服务器返回了400。 在RAW模式下按照HTTP0.9协议输入请求行,fiddler会报错: 需要测试HTTP1.0、HTTP0.9还是直接用Python比较方便。

接口测试中,数据驱动时,参数各类型,空或None的处理

江枫思渺然 提交于 2019-12-02 23:03:48
天天说接口测试,天天说数据驱动,但网上的各种教程太烂,遇到实际情况就傻眼了。 来来来,我们看一个例子 假设,有下面这样一个接口,获取用户信息,可以带的参数如下: 用户名(uname) str(),非必填 用户ID(uid)  int(), 非必填 用户电话   字典,非必填 所以接口用例就会有这种情况: 1、如果传的类型不对怎么办,比如uname,传的是整型 2、比如非必填的,传的是空或None,这两种都是不同的值 上面这2种情况在在数据驱动怎么处理?如果你的源数据是放在excel,就没法处理,所以要在写之前,约定俗成,说几点吧,给有需要的读者: 1、excel 按约定全设成文本形式 2、约定比如int( 开头的,表明是整形 3、比如输入的是None,就是None 4、为空就是不填 来源: https://www.cnblogs.com/landhu/p/11766304.html

接口自动化

匿名 (未验证) 提交于 2019-12-02 23:03:14
一、概念 1. 什么时接口自动化? 接口自动化就是传入输入,检查输出的一个过程, 优点:相比UI测试,有效且稳定,比单元测试更容易上手。 2. 如何做好接口自动化? 3.自动化和手工的区别? 自动化只是将测试点用程序实现出来。提高测试效率,缩短回归测试的时间,而且不容易遗漏。 4.自动化测试用例和普通用例设计的区别 基本上没啥区别,基本上也是采用边界值法,等价划分法,场景法等。 5.自动化关注的重点 a)功能 b)逻辑业务,根据需求文档设计 c)异常场景,像调用第三方接口超时要如何处理,调用失败要如何处理等 d)安全,像登录,请求头里有header的话,删除header是否能正常请求 6.如何设计测试用例 a)代码可读性,好的命名规范,写注释 b)可维护性,case的独立性,一个case只测试一种场景 c)可迁移性,本机可用,迁移到其余的电脑也可以用 d)可重用性,参数化,封装成类 e)case的效率,多线程,分布式等 7.如何管理测试数据 测试数据的分类 a)基础数据,放配置文件里(像登录数据,至少需要一组数据用来登录) b)测试数据,放excel里面(根据不同场景设置的不同数据,比如注册) c)临时数据,直接写到脚本里 8.如何解决用例之间的依赖 9.如何正确的断言保证测试的准确性

使用PostMan测试WebService接口

匿名 (未验证) 提交于 2019-12-02 22:56:40
使用PostMan测试WebService接口 参考资料: 通过XML请求WebServer https://blog.csdn.net/qq_33933408/article/details/53149435 WebService发布与访问并通过Postman测试WebService接口 https://blog.csdn.net/up123456789/article/details/79474446 一、操作步骤 1、设置URL 2、设置请求模式:Post 3、设置Header:添加 Content-Type ,值为 text/xml;charset=utf-8 4、设置Body:勾选raw 5、输入Body内容:(详见 二) 二、请求WebService时的Body结构 <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">   <soap:Body>     <getWeather xmlns="http:/

接口测试-模拟网络请求

匿名 (未验证) 提交于 2019-12-02 22:56:40
1 发送HTTP请求 postman构建HTTP请求: Method(请求方法) URL: url参数 query string/ endoceURIComponet Headers(请求头) 消息体: application/x-www-form-urlencoded application/json application/xml 1.1 requests模块 安装:pip install requests 导入模块:import requests 1.2 请求与响应 r = requests.方法(url,headers,data,......) r = requests.get( ‘ https://github.com/timeline.json ‘ ) r = requests.post( " http://httpbin.org/post " ) r = requests.put( " http://httpbin.org/put " ) r = requests.delete( " http://httpbin.org/delete " ) r = requests.head( " http://httpbin.org/get " ) r = requests.options( " http://httpbin.org/get " ) 请求后获取常用的响应结果: r

Python接口测试之moco(八)

匿名 (未验证) 提交于 2019-12-02 22:51:30
在现在的软件开发过程中,特别是app的部分,需要的很多数据以及内容,都是来自server端的API,但是不能保证 在客户端开发的时候,api在server端已经开发完成,专门等着前端来调用,理想的情况是前端在开发的时候,已经有人写 好了接口,直接调用就可以了,但是这仅仅是理想的情况,很多时候,现实总是比理想多一层思考和磨难,如果在前端开发 的时候,提供api的同学没有提供,那么怎么办?等待还是自己先开发,等待肯定是愚蠢的做法,那么自己开发怎么来解决 api提供数据的这个问题,那么使用mock就可以很好的解决,什么是mock?mock简单的理解就是开发在开发的过程中, 需要依赖一部分的接口,但是对方没有提供或者环境等等情况,总之是没有,那么开发使用mock server自己来mock 数据,方便自己正常的进行开发和对编写的功能进行自测。 https://github.com/dreamhead/moco 地址中可以下载到moco-runner-0.11.0-standalone.jar,下载下来 就是一个jar,在该地址中,作者对这部分有详细的说明和启动mock server方法,这里不在重复的再次说明。下来我们 简单的编写一个登录的,见编写的login.json字符串: [ { " request " : { " method " : " post " , " uri " : "

Python--代码1(接口测试:测试用例从数据库读取写到yaml文件中)

匿名 (未验证) 提交于 2019-12-02 22:51:30
一. 从数据库中读取全部接口,并写入yaml文件 数据库中的数据存储格式如下图: import pymysql import os import json # from ruamel import yaml import yaml #第一步:从数据库中取出所有接口记录存成一个字典 def query(sql): con=pymysql.connect(host='192.168.249.152',user='root',password='123456',db='test_api',charset='utf8')#连接数据库 cur=con.cursor()#获取游标 cur.execute(sql)#执行sql list = [] for id,pathGroup,path,param,method in cur.fetchall():#查询记录,fetchall用法参见注释1 ever = { 'pathgroup': pathGroup, 'path': path, 'param': param if param == '' else json.loads(param), 'method': method } #将每一个接口形成一个字典格式,param如果写成'param':param的话会有坑(坑1) #print(ever) list.append(ever)

jmeter接口测试的简单例子(一)

柔情痞子 提交于 2019-12-02 22:22:46
使用jmeter进行接口压力测试的一个简单例子 本文链接: https://blog.csdn.net/zhizunyu2009/article/details/54406114 保存后,上传到linux服务端。再把uid.txt上传。 然后修改文件的路径。 sudo vim 个人余额查询接口.jmx 找到 路径的地方,修改为 /home/zhizunyu/uid.txt 保存。 然后执行: jmeter -n -t 个人余额查询接口.jmx -l 20170113.jtl 把结果传到本地 sudo sz 20170113.jtl 用本地windows版,添加 聚合报告,查看执行的结果。 Samples:表示这次测试中一共发出了多少个请求,本例模拟了50个用户,迭代了10次,所以共500个请求。 Average - 默认情况下是单个Request的平均响应时间。 Median - 中位数。表示响应时间本不大于该时间值的请求样本数占总数的50%【50%用户的响应时间】 90% Line - 表示响应时间不大于该时间值的请求样本数占总数的90% 【90%用户的响应时间】 Min - 针对同一请求取样器,请求样本的最小响应时间 Max - 针对同一请求取样器,请求样本的最大响应时间 Error % - 出现错误的请求样本的百分比 Throughput:吞吐量—

年薪30W测试工程师成长之路,你在哪个阶段?

ⅰ亾dé卋堺 提交于 2019-12-02 22:21:55
对任何职业而言,薪资始终都会是众多追求的重要部分。前几年的软件测试行业还是一个风口,随着不断地转行人员以及毕业的大学生疯狂地涌入软件测试行业,目前软件测试行业“缺口”已经基本饱和。当然,我说的是最基础的功能测试的岗位需求已经很少了,而自动化、性能、安全乃至于以后可能出现的大数据测试、AI测试仍存在着非常多的机会。很多测试从业者其实会对自己未来的发展感到迷茫,觉得自己的工作其实就是用“鼠标点点点”,其实不是这样的,测试工程师有自己的价值。如果你热爱这个行业,好好规划自己的职业发展道路,到达行业顶薪也是有可能的。 “长江后浪推前浪,前浪死在沙滩上”,曾经一句让人会心一笑的调侃,而今变成了软件测试行业的真实写照。由于软件测试行业入门门槛低,薪资报酬高,不断有新鲜血液冲刷着软件测试行业的“前行者”们,给我们带来了非常大的压力。 那些入行几年,但是依然是功能测试的同学所面临的的压力可想而知。说到底,软件测试行业还是属于技术岗位。既然是技术岗位,那就要靠技术说话。不断掌握新的技能,提高软件测试“找bug”的能力也就变成了目前软件测试从业人员迫在眉睫需要解决的问题。因此,现在大部分初级功能测试人员都在向自动化、性能、安全靠拢。 但是还是有不少的软件测试工程师站在“十字路口”迷茫、无助,找不到自己的方向。 一切的迷茫都是因为想得太多而做的太少!每位软件测试行业从业者都能意识到目前自己面临的窘境