0


自学接口自动化测试

     当上海这座金融中心开启了路边摊,这就意味着回归实体经济才是根本,没有烟火气息的城市,就少了很多人口优势带来的活力,就没有办法带动区域化经济的发展;全国各大城市以效仿之,让人们都出来走一走,看一看,吃点小吃,逛会夜市,顺便逛逛各大商超广场,才能显现出庞大的经济链效应,也让人们少在家里躺平一会,少玩会手机,多走几步,还能促进和周边人的关系,一举多得。当然了路边摊不容易,出去吃路边摊也需要钱,所以还是先好好学习,找到工作了,有工资了再去吃吧。

    接下来呢,就总结的是(二)接口自动化测试-Postman工具,简单开源免费的工具,都是大家最想用的,无一例外,既然有免费的就先用免费的,节约成本不就是为公司赚钱了吗?

CSDN话题挑战赛第2期

参赛话题:学习笔记


一、Postman简介

1、安装说明

    (1)安装

    Postman API Platform | Sign Up for Free官网直接下载对应版本安装即可,无需注册

2、功能简介

    (1)80-20原则(帕累托法则)

    软件中80%的缺陷,发现在需求和设计阶段;80%的代码时没有问题的,出bug的代码只占20%;软件的80%功能很少用(QQ和微信的帮助功能);用户使用软件的时候,80%的时间使用20%的核心功能

    (2)Web API测试工具:网页调试、发送网页HTTP请求、运行测试用例

    (3)模拟HTTP Request:GET、POST、RESTful、PUT、DELETE

    (4)发送文件、发送额外的header


二、使用Postman发送请求

1、不带参数的GET请求

    (1)在集合中创建一个请求

    (2)输入地址和请求方式

    (3)发送请求并分析结果

    响应区域:

Body:服务器返回的信息主体

Cookies:服务器返回的所有cookies值(用于验证客户端、服务器身份信息)

Headers:服务器返回的响应头信息

Test Results:断言,判断服务器返回的响应信息是否正确

响应的其他信息:Status(状态码)、Time(响应时间)、Size(响应信息大小)

**** 注意:****分析接口的响应结果时,必须搞清楚每一个返回值含义及取值范围

    (4)请求案例内容的保存

2、带参数的GET请求

    (1)在集合中创建一个请求

    (2)输入地址和请求方式

    (3)添加参数(Params:KEY参数名-VALUE参数值)

    (4)发送请求并分析结果

    响应区域:

Body:服务器返回的信息主体

Cookies:服务器返回的所有cookies值(用于验证客户端、服务器身份信息)

Headers:服务器返回的响应头信息

Test Results:断言,判断服务器返回的响应信息是否正确

响应的其他信息:Status(状态码)、Time(响应时间)、Size(响应信息大小)

**** 注意:****分析接口的响应结果时,必须搞清楚每一个返回值含义及取值范围

    (5)请求案例内容的保存

3、带参数的POST请求

    (1)阅读API文档,获取接口地址、参数

    (2)准备参数

    (3)在body中添加参数

    (4)发送请求并分析JSON结果

4、百度翻译API实战

    (1)先阅读API技术文档,成为技术开发者,获取APPID---2015063000000001

通过API文档,知道接口地址、参数(q、from、to、appid、salt(随机码)、sign(MD5值))appid-你自己登录注册开发者就有、密钥-你自己登录注册开发者就有

    (2)准备参数

q-apple、from-zh、to-en、appid-你自己登录注册开发者就有、salt-202002121503、密钥-你自己登录注册开发者就有、sign-7105f811ca9d3835146ed9c44ab46770

q-苹果(%E8%8B%B9%E6%9E%9C参数值中有中文,需要进行URL Encode编码)、from-en、to-zh、appid-你自己登录注册开发者就有、salt-202002121503、密钥-你自己登录注册开发者就有、sign-4584abac71bd98feff3b0675942914cd

    (3)将参数添加到postman界面中,点击send

    (4)中文翻译为英文得到的结果:

{"error_code": "54001","error_msg": "Invalid Sign"}

{"error_code": "54004","error_msg": "Please recharge"}

分析结果:

1、通过查询百度翻译API文档,可知错误码54001为 签名错误,错误信息为无效签名。

2、通过查询百度翻译API文档,可知错误码54004为账户余额不足,错误信息为请充值。

** 5、QQ注册接口实战**

    (1)获取接口地址和参数信息

    (2)edge浏览器的开发者模式-网络中,针对特定的请求,查找相关信息

https://ssl.zc.qq.com/cgi-bin/zc/sms_send

    (3)分析参数

telphone: 008619591654646

nick: 没什么卵用(%E6%B2%A1%E4%BB%80%E4%B9%88%E5%8D%B5%E7%94%A8)

elevel: 61

fsq_sig: t039_4pwOwq-OmgGsXdqBmt2o6n0822jUmCWBRydiEBTs3n9XTa9VpveW5UjBe

0zyP8XDEMqjgzTXQd8-fpu3e9llFfQrlRXermvBuxxPFHOZ8X1TqEmGcHMZd691Xq-Jcx

rand_str: @6VI(%406VI)

    (4)在postman中设定参数:body下设置form-data,写对应的参数值,发送请求

    (5)分析响应结果:在没有API文档的情况下,必须询问开发或者自己阅读接口对应的函数(阅读源代码),然后分析程序的返回值


三、参数化运行

1、什么是参数化

    (1)使用变量代替常量的方式

    (2)设计参数文件(****csv文件********(常用)****、text文件)

2、集合中运行

    (1)添加****runner****,设置测试集

    (2)配置运行次数和文件读取

    (3)Postaman关于参数化运行的方案和机制

    以整个请求的集合(目录Collection)为一个主体(参数化运行作用对象是一个集合中的所有请求),需要将特定的请求单独放在一个集合中

    以⒉x网站api为例:

https://www.v2ex.com/p/7v9TEc53

参数化对象是用户接口中的id参数

接口地址:https://www.v2ex.com/api/members/show.json

请求方法:GET

参数:id

a.准备参数化文件:csv文件,外部数据文件

b.在postman中创建接口请求

c.使用设置好的变量名代替对应的常量,同时需要双花括号{{}}引起来

d.启动runner,运行整个Collection

e.选择要进行参数化运行的Collection

f.设置运行效果:iterations迭代次数、Delay延迟时间ms(请求之间)、Data选择数据文件(需有参数化变量名)、其他设置(保存响应结果、保存运行中的变量值、运行之后保存cookies值)

g.开启运行脚本,查看和检查运行参数,并将测试结果导出。

结果显示:0成功0失败;原因:未添加断言,无价值测试


四、断言

1、定义

    对结果进行判断

2、内置断言

    tests模块:对HTTP响应结果进行断言

3、使用断言

    (1)插入一个JSON结果判断的断言,返回值是一个单一的字典型数据

    (2)插入一个JSON结果判断的断言,返回值是一个组合(多个等级)的字典型数据

    (3)pm.test("响应码是200", function () {pm.response.to.have.status(200);});


五、其他技术

1、脚本

    (1)支持语言

    JavaScript(Node.js)

    (2)应用场合

    断言:**tests**模块,在接收到HTTP的响应后进行处理和运行

    预处理信息:**Pre-request script**,在HTTP请求发送之前进行数据的处理和运行,可配合参数化进行,通过制定的脚本运行,读取参数文件

    控制请求的运行:跳转某个请求,或循环执行某个请求

    (3)运行顺序

    pre-re、控制、断言

    (4)官方文档说明

    Writing tests | Postman Learning Center
pm.environment.get("variable_key");  # 获取环境变量
pm.globals.get("variable_key");  # 获取全局变量
pm.variables.get("variable_key");  # 获取变量
pm.collectionVariables.get("variable_key");  # 获取集合变量
pm.environment.set("variable_key", "variable_value");  # 设置环境变量
pm.globals.set("variable_key", "variable_value");  # 设置全局变量
pm.collectionVariables.set("variable_key", "variable_value");  # 设置集合变量
pm.environment.unset("variable_key");  # 清除环境变量
pm.globals.unset("variable_key");  # 清除全局变量
pm.collectionVariables.unset("variable_key");  # 清除集合变量
pm.sendRequest("https://postman-echo.com/get", function (err, response) {
    console.log(response.json());
});  # 从测试代码发送请求并记录响应
pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});  # 检查API返回的响应代码是否为200
pm.test("Body matches string", function () {
    pm.expect(pm.response.text()).to.include("string_you_want_to_search");
});  # 检查响应正文中是否包含字符串
pm.test("Your test name", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.value).to.eql(100);
});  # 检查响应正文(JSON数据)中的特定值是否等于100
pm.test("Body is correct", function () {
    pm.response.to.have.body("response_body_string");
});  # 检查短响应是否与字符串匹配
pm.test("Content-Type is present", function () {
    pm.response.to.have.header("Content-Type");
});  # 检查响应标头是否存在
pm.test("Response time is less than 200ms", function () {
    pm.expect(pm.response.responseTime).to.be.below(200);
});  # 检查响应时间是否在指定范围内
pm.test("Successful POST request", function () {
    pm.expect(pm.response.code).to.be.oneOf([201, 202]);
});  # 检查API返回的响应代码是否在指定范围内
pm.test("Status code name has string", function () {
    pm.response.to.have.status("Created");
});  # 检查状态代码文本
var jsonObject = xml2Json(responseBody);  # 解析XML为JSON对象
var schema = {
    "items": {
        "type": "boolean"
    }
};

var data1 = [true, false];
var data2 = [true, 123];

pm.test('Schema is valid', function () {
    pm.expect(tv4.validate(data1, schema)).to.be.true;
    pm.expect(tv4.validate(data2, schema)).to.be.true;
});  # 使用微型验证器V4(tv4)执行JSON架构验证

2、环境变量

    Environment、Globals

3、导出脚本

    code(源代码)


    愿你我都能为中华民族的伟大复兴尽一份绵薄力量,让中华文化的根扎根在中国这片绿水青山之上,让新一代中华儿女传承与发扬!!!

---无名之辈


以上内容均是本人自学,当然是有网上公布的内容,如有冒犯,请留言,立即改正,谢谢!


    看完要是觉得对自己有用,动一下您那根金色的会一指禅的右手食指,按一下您的鼠标左键,在对应的那个位置点个赞,亦或者在评论区留下您的绝顶好句,亦或者收藏在您的收藏夹里,再走也不迟嘛!您说要不要得!谢谢您的阅读和赞赏!
标签: 自动化 postman http

本文转载自: https://blog.csdn.net/bigbear_001/article/details/127039166
版权归原作者 bigbear_001 所有, 如有侵权,请联系我们删除。

“自学接口自动化测试”的评论:

还没有评论