基于SaaS平台的iHRM管理系统测试学习

目录

目录

1、登录模块

2、员工管理模块

3、Postman+newman软件的安装,学习

1、Postman的使用

2、Postman断言

3、全局变量和环境变量

4、请求时间戳

5、Postman关联

6、批量执行测试用例

7、Postman生成测试报告

8、Postman读取外部数据文件(参数化)

1、CSV

2、Json

3、参数的使用

4、参数化案例-用手机号找运营商​​​​​​​ 



1、登录模块

  • 登录成功
  • 登录失败
  1. 用户名为空
  2. 用户名错误
  3. 用户名有特殊字符
  4. 用户名太长
  5. 用户名太短
  6. 密码错误
  7. 密码为空
  8. 密码过长
  9. 密码过短
  10. 密码有特殊字符
  11. 含有用户名和密码俩参数
  12. 少参
  13. 多参
  14. 参数错误
  15. 无参

2、员工管理模块

  • 员工的增加
  • 员工的删除
  • 员工的修改
  • 员工查询
  • 员工列表的显示

3、Postman+newman软件的安装,学习

Postman+newman

1、Postman的使用

新增测试用例集,新增功能模块,新增请求(1,2中的内容,包括请求方法,请求url,请求行,请求头,请求体),测试用例集的导出,测试用例集的导入

2、Postman断言

1、断言状态码(重要)

2、断言包含某个字符串(contains string)

3、断言等于某个字符串(equal string)

4、断言Json数据(重要)


/* 举例:response.json();
{"success": true,"code": 10000,"message": "操作成功!","data": "95c78d75-721c-40fb-b2d5-742fea42cbd5"
}
*/

5、断言响应头 header

6、Postman断言原理

3、全局变量和环境变量

#全局变量设置pm.globals.set("glb_age", 100)
#全局变量获取var ret = pm.globals.get("glb_age")  // ret 的值为 100
#环境变量设置pm.environment.set("env_age", 99)
#环境变量获取var ret = pm.environment.get("env_age")  // ret 的值为 99
请求参数获取(postman界面获取){{env_age}}

4、请求时间戳

1)获得时间戳,传递给变量

2)将变量设为全局变量

3)查看全局变量是否设置成功(点击send ,查看右上角眼睛)

4)在请求参数(界面)中使用全局变量

5)在 postman的 控制台,查看 发送的 http请求 view->show Postman Console

5、Postman关联

应用于多个http请求之间,有数据关联和依赖关系时,将前一个接口获取的数据传递给下一个接口。

A,B接口依赖数据(登录接口与添加员工接口)登录接口->获得令牌->添加员工信息

1)B发送http请求,获得数据

2)将数据设为全局变量

3)A接口获得全局变量的值,进行http请求

6、批量执行测试用例

7、Postman生成测试报告

 1)批量执行测试文件(确认无误)

2)批量导出测试文件(得到 xxxx.json文件)

3)利用Newman代码在终端中执行命令,生成测试报告

    ```shell# 现在 终端中,测试一下。newman run xxxx.json# 完整的命令newman run xxxx.json -e 环境变量文件 -d 外部数据文件 -r html 
--reporter-html-export 测试报告名.html# 示例:newman run 批量执行测试用例.postman_collection.json -r html 
--reporter-html-export 我的第一个测试报告.html# 如果添加 -r html 就报错!说明: newman-reporter-html 安装失败!```

8、Postman读取外部数据文件(参数化)

注意:文件读取时会逐行读取!!!

应用:当http请求,使用的数据有较高相似度,相同的请求时,考虑使用参数化

1、CSV

1)创建 xxx.csv 文件。

2)将数据写入到 csv文件中(保存时右下角编码类型设置为utf-8)。

  •  第一行 写入 的是 数据对应的 “字段名”
  • 从第二行向后依次是对应的数值,数据间用 英文逗号隔分。

3)在 Postman 中,选中使用数据文件的 用例集,导入数据文件。

2、Json

1)创建 xxx.json 数据文件

2)在 数据文件中,按json 语法写入json数据。postman要求,json格式的数据文件,数据内容的最外层,必须是 [ ] 。内部所有的数据用 {} 存储。( 建议:使用 json.cn 在线网站编写。)
3)在 Postman 中,选中使用数据文件的 用例集,导入数据文件。

  • 同CSV

3、参数的使用

- 第一种:**请求参数**(请求行、请求头、请求体)中
     **使用 {{}}** 包裹 csv 文件 字段名 或 json 文件中的  key 
        - 如:
{{username}}  或 {{password}}
- 第二种:**代码**(断言、请求前置脚本)中
    - 需要借助 postman 提供的 **关键字data** 点 csv 文件的字段名 或 json文件的 key
        - 如:
data.username  或  data.password


4、参数化案例-用手机号找运营商 

1)创建用例集->创建查找手机号的http请求->点击run collection

2)导入.csv文件或者.json文件

3)在断言界面3.2格式,在请求参数界面使用3.1格式,点击run 参数化用例集,完成用手机号找运营商

9、Postman参数化-生成测试报告

1.  批量执行测试用例(借助数据文件)(8中内容)

2.  导出 测试用例集 (建议与 数据文件 放在一起)

3.  执行生成测试报告的命令(cmd)

newman run 用例集名称.json -d 数据文件名.csv/.json -r html --reporter-html-export 报告名称.html

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

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

相关文章

昇思25天学习打卡营第01天|基本介绍

作为曾经的javaer,本着不断学习的初心,报名了昇思25天的课程,希望自己能学会点东西的目的。 昇思MindSpore介绍 昇思MindSpore是一个全场景深度学习框架,旨在实现易开发、高效执行、全场景统一部署三大目标。 其中,…

【干货】Jupyter Lab操作文档

Jupyter Lab操作文档1. 使用须知2. 定制化Jupyter设置主题显示代码行数设置语言更多设置 3. 认识Jupyter界面4. 初用Jupyter运行调试格式化查看源码 5. 使用Jupyter Terminal6. 使用Jupyter Markdown7. 上传下载文件(云服务器中的Jupyter Lab)上传文件到…

选好专业还是选好学校

在高考结束后,考生面临的一个重要选择就是在“专业”和“学校”之间进行权衡。这个选择涉及到多个维度,包括课程学习、就业前景、个人兴趣等。下面,我将结合不同专业的优势和未来挑战,从实际场景出发探讨“专业VS学校”的选择方案…

云计算 | 期末梳理(上)

说在前面:云计算(2024)回忆版,单选15题15分,多选15题30分,填空题10空10分,简答题三题25分(6 8 11),计算题两题20分。总的来说,反正就是考PPT上内容的背诵默写o(╥﹏╥)oo。 选择题考得很细,有PPT原题但不多(特别是多选)。填空就那样,也是看你看得仔不仔细,有没…

LeetCode 算法:二叉树的层序遍历 c++

原题链接🔗:二叉树的层序遍历 难度:中等⭐️⭐️ 题目 给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。 示例 1: 输入:roo…

关于如何更好管理好数据库的一点思考

本文尝试从数据库设计理论、ER图简介、性能优化、避免过度设计及权限管理方面进行思考阐述。 一、数据库范式 以下通过详细的示例说明数据库范式的概念,将逐步规范化一个例子,逐级说明每个范式的要求和变换过程。 示例:学生课程登记系统 初始…

【Docker】容器

目录 1. 容器启动 2. 容器启动/重启/停止 3. 进入容器 4. 容器查询 5. docker 镜像的构建 方式一:docker 容器 commit 方式二:Dockerfile 定制镜像 1. 容器启动 docker run –it/-d –p/P –name imageID/name 2. 容器启动/重启/停止 docker sta…

Linux-笔记 全志T113移植正点4.3寸RGB屏幕笔记

目录 前言 线序整理 软件 显示调试 触摸调试 背光调试 前言 由于手头有一块4.3寸的RGB屏幕(触摸IC为GT1151),正好开发板上也有40Pin的RGB接口,就想着给移植一下,前期准备工作主要是整理好线序,然后用转接板与杜邦线连接验证好…

一篇文章告诉你如何正确使用chatgpt提示词

在chatgpt大火的时候,出现了一波学习chatgpt提示词的热潮,互联网出现很多了使用的学习提示词的课程。其中我觉得斯坦福大学教授吴恩达博士推出prompt engineer课最全面。接下来总结他课程中正确使用提示词工程的方法。 1. 明确目标 明确你希望ChatGPT完…

vue3+ts:监听dom宽高变化函数

一、效果展示 二、代码 getSize.ts import { ref, Ref, watchEffect } from "vue";export const getWidth (domRef: Ref<HTMLElement | null>) > {const width ref<number>(0);const height ref<number>(0);const observer new ResizeObs…

Qt事件传递顺序是怎样的?

1、事件传递顺序规则 在Qt中&#xff0c;事件传递的顺序事件首先传递到目标对象的事件过滤器&#xff0c;然后传递到事件处理函数&#xff0c;最后传递到父对象的事件过滤器和事件处理函数。 为了更好地理解这一过程&#xff0c;下面将通过一个示例来展示事件在父窗口和子窗口…

`lupdate`、`linguist` 和 `lrelease` 是 Qt 中处理翻译的三个关键工具

lupdate、linguist 和 lrelease 是 Qt 中处理翻译的三个关键工具 lupdate、linguist 和 lrelease 是 Qt 中处理翻译的三个关键工具。以下是这些工具的具体使用方法及其流程: 1. lupdate lupdate 工具用于从源代码中提取翻译字符串并生成 .ts 文件。这个文件包含应用程序中的…

IOS Swift 从入门到精通:@escaping 和PreferenceKey

@escaping 在Swift中,@escaping是一个属性关键字,用于标记闭包参数。当一个闭包在函数返回之后才被调用时,这个闭包被称为逃逸闭包(Escaping Closure)。使用@escaping关键字可以告诉Swift编译器,传递给函数的闭包可能会在函数执行完毕后被调用,因此它需要“逃逸”函数的…

投票多功能小程序(ThinkPHP+Uniapp+FastAdmin)

&#x1f389;你的决策小助手&#xff01; 支持图文投票、自定义选手报名内容、自定义主题色、礼物功能(高级授权)、弹幕功能(高级授权)、会员发布、支持数据库私有化部署&#xff0c;Uniapp提供全部无加密源码。​ 一、引言&#xff1a;为什么我们需要多功能投票小程序&#…

小程序的基本使用

【 0 】前言 【 0 】 这个就是js代码的存放地方 app.json // pages/banner/banner.js Page({/*** 页面的初始数据*/data: {},/*** 生命周期函数--监听页面加载*/onLoad(options) {},/*** 生命周期函数--监听页面初次渲染完成*/onReady() {},/*** 生命周期函数--监听页面显示…

【安卓13 源码】RescueParty救援机制

RescueParty机制正是在这个背景下诞生的&#xff0c;当它注意到系统或系统核心组件陷入循环崩溃状态时&#xff0c;就会根据崩溃的程度执行不同的救援行动&#xff0c;以期望让设备恢复到正常使用的状态。 开机后会自动重启&#xff0c;进入Recovery界面。经查找&#xff0c;是…

代码随想录-Day39

62. 不同路径 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “Finish” &#xff09;。 问总共有多少条不同的路径&…

compare to 和 compare with 有什么区别?

“Compare to” 和 “compare with” 在使用上有些微小的区别。 Compare to 用于描述两个或多个不同种类的事物之间的类似之处&#xff0c;强调相似性和类比。例如&#xff1a;“她的声音像一阵清风&#xff0c;比作一把小提琴。” Compare with 则用于对比两个或多个同类事物…

COD论文笔记 TCSVT_2024 Finding_Camouflaged_Objects_Along_the_Camouflage_Mechanisms

动机 论文的动机是重新审视伪装物体检测&#xff08;COD&#xff09;任务&#xff0c;并从伪装机制的角度提出一种新的解码伪装的方法。传统的COD方法难以准确区分伪装物体和背景&#xff0c;因此作者提出通过借助显著物体检测&#xff08;SOD&#xff09;任务来实现解码伪装&…

线程安全问题(一)——锁的简单使用

多线程安全问题 线程安全问题的引入案例引入多线程指令排序问题 线程不安全的原因解决线程不安全的方法锁的引入上锁和解锁过程一个简单的锁Demo对这个案例进行几次修改 总结 线程安全问题的引入 在前面的博文中&#xff0c;我们了解到通过Thread.join()的方法让线程进入等待&…