03 2022 档案
摘要:构建测试套件 在实际项目中,随着项目进度的开展,测试类会越来越多,可是直到现在我 们还只会一个一个的单独运行测试类,这在实际项目实践中肯定是不可行的,在 unittest中可以通过测试套件来解决该问题。 测试套件(Test Suite)是由多个测试用例(Test Case)组成的,当然也 可以由多个
阅读全文
摘要:忽略用例 在执行测试脚本的时候,可能会有某几条用例本次不想执行,但又不想删也 不想注释,unittest通过忽略部分测试用例不执行的方式,分无条件忽略和有条 件忽略,通过装饰器实现所描述的场景。 提供的装饰器如下: @unittest.skip(reason):强制跳转。reason是跳转原因 @u
阅读全文
摘要:unittest用例执行顺序 当在一个测试类或多个测试模块下,用例数量较多时,unittest在执行用例 (test_xxx)时,并不是按从上到下的顺序执行,有特定的顺序。 unittest框架默认根据ACSII码的顺序加载测试用例,数字与字母的顺序为: 0~9,A~Z,a~z。 对于类来说,cla
阅读全文
摘要:unittest断言 断言即进行预期结果和实际结果比对 unittest中常用的assert语句 assertEqual(a, b) a == b assertNotEqual(a, b) a != b assertTrue(x) bool(x) is True assertFalse(x) boo
阅读全文
摘要:setup前置初始化和teardown后置操作 针对类中每个函数执行时进行前置后置的操作 setUp(self):测试前的初始化操作 tearDown(self):测试后的操作 代码示例: import unittest # 导入unittest模块 class test_case(unittest
阅读全文
摘要:unittest单元测试框架简介 unittest是python内置的单元测试框架,具备编写用例、组 织用例、执行用例、功能,可以结合selenium进行UI自动化测 试,也可以结合appium、requests等模块做其它自动化测试 官方文档:https://docs.python.org/3/l
阅读全文
摘要:python之re模块 一、正则表达式 re模块是python独有的匹配字符串的模块,该模块中提供的很多功能是基于正则表达式实现的,而正则表达式是对字符串进行模糊匹配,提取自己需要的字符串部分,他对所有的语言都通用。注意: re模块是python独有的 正则表达式所有编程语言都可以使用 re模块、正
阅读全文
摘要:异常处理 遇到网络问题(如:DNS 查询失败、拒绝连接等)时,Requests 会抛出一个 ConnectionError 异常。 如果 HTTP 请求返回了不成功的状态码, Response.raise_for_status() 会抛出一个 HTTPError 异常。 若请求超时,则抛出一个 Ti
阅读全文
摘要:证书处理(SSL Cert Verification) 很多网站都是https,但是不用证书也可以访问,大多数情况都是可以携带也可以不携带证书如知乎\百度 等都是可带可不带但有硬性要求的,则必须带,比如对于定向的用户,拿到证书后才有权限访问某个特定网站。 关闭警告 import requests,w
阅读全文
摘要:session处理 部分接口需要先登录网址,才能有权限进行调用,这时可以使用到session,具体操作是:先使用网站 的登录api进行登录,得到session后,然后用该session来请求其它的接口。 示例代码: session_obj = requests.session() # 用来保持会话连
阅读全文
摘要:请求中添加cookies 对于某些网站,登录然后从浏览器中获取cookies,以后就可以直接拿着cookie登录了,无需输入用户 名密码。 一、在参数中添加cookie 在发送请求时使用cookies 代码示例: import requests # 1,在参数中添加 cookie_dict = {"
阅读全文
摘要:重定向设置 在请求url时,服务器会自动把我们的请求重定向,可以使用response.history来查看重定向。如果不想进行自 动重定向,可以用参数allow_redirects关闭 设置重定向开关:allow_redirects:True/False 代码示例: import requests
阅读全文
摘要:超时设置 Requests模块可以设置接收数据的超时时间,超出设定的时间还没有数据返回,就抛出异常。超时设 置有两种类型表达:float 、tuple timeout():以秒为单位 如果远端服务器很慢,你可以让 Request 永远等待,传入一个 None 作为 timeout 值 代码示例: i
阅读全文
摘要:设置代理 代理(英语:Proxy),也称网络代理,是一种特殊的网络服务,英文全称是(Proxy Server),其功 能就是代理网络用户去取得网络信息。形象的说:它是网络信息的中转站。代理服务器就好象一个大的 Cache,这样就能显著提高浏览速度和效率。 免费代理地址:https://proxy.m
阅读全文
摘要:Requests模块获取响应内容 响应包括响应行、响应头、响应正文内容,这些返回的响应信息都可以通过Requests模块获取。这些 获取到的响应内容也是接口测试执行得到的实际结果。 获取响应行 获取响应头 获取其它响应信息 代码示例: # 导入requests模块 import requests r
阅读全文
摘要:模拟发送post请求 发送post请求的基础知识dumps和loads 代码示例: # 发送post请求 import requests,json # 发送post请求的基础知识dumps和loads str_dict ={'name':'xiaoming','age':'20','sex':'男'
阅读全文
摘要:HTTP Cookie管理器 HTTP Cookie管理器可以像浏览器一样自动存储和发送cookie,以这种自 动收集的方式收集到的cookie不会在cookie manager中进行展示,但是运行后, 可以通过 查看结果树(监听器)可以查看到cookie信息 除了上述的自动收集方式,还可以进行手动
阅读全文
摘要:随机控制器 当该控制器下有多个子项时,每次循环会随机执行其中一个 Ignore sub-controller block(忽略子控制器模块) 如果勾选了此项,随机控制器下的子控制器中的多个子项只会被执行一个 随机顺序控制器 当该控制器下有多个子项时,它会执行它下面的每个子项,只不过执行顺序 是随机的
阅读全文
摘要:仅一次控制器 在进行压测时,往往类似登录等接口只需要一次,其他的接口需要循环测试。 这里就会用到控制器中的仅一次控制器。只要放置在控制器的请求,不管在哪种 情况下,都只执行一次 注意:循环一次是只针对线程组所设置的循环,如果将 “仅一次循环控制器” 添加在“循环控制器”下作为子节点,则无法实现仅一次
阅读全文
摘要:交替控制器 该控制器包含的取样器步骤在每次循环中交替执行 交替控制器指每次运行一次时在交替控制器下的采样器只执行一个;如下图: 忽略子控制模块:如果勾选此项,交替控制器将子控制器像单一请求元素一样,一次 只允许一个请求/控制器(但如果交替控制器下有事务控制器时,则不会执行事务控制器下的请求) Int
阅读全文
摘要:循环控制器 循环次数:设置该控制器下的请求的循环执行次数 永远:勾选上的话,会一直循环,即所谓死循环 注意:如果线程组本身已经设置了循环次数的话,那循环控制元件控制的子节点 的循环次数为线程组设置的循环次数乘以循环控制器设置的循环次数的结果(例如: 线程组设置循环数为2,循环控制器设置循环数为3,则
阅读全文
摘要:简单控制器 它是最基本的控制器,对jmeter测试运行没有任何影响,可以将一些请求归 集在一个简单控制器中,视为一个模块,使得脚本结构更清晰 路径:逻辑控制器——简单控制器; 可把简单控制器当成一个文件夹看待;如下图
阅读全文
摘要:事务: 性能测试中,事务指的是从端到端,一个完整的操作过程,比如一次登录、一次 筛选条件查询,一次支付等;技术上讲:事务就是由1个或多个请求组成的 事务控制器 事务控制器类似简单控制器,把单个或者多个请求做成一个整体业务,它包含了2个选项,更能突出事务的概念。 Generate parent sam
阅读全文
摘要:Charles + Jmeter的性能测试脚本的制作和调试 以PHP论坛为例:http://47.107.178.45/phpwind/ Charles抓包 1、charles设置过滤;可参考:https://www.cnblogs.com/YouJeffrey/p/15334939.html 2、
阅读全文
摘要:性能测试的流程 一、准备工作 1、系统基础功能验证一般情况下,只有在系统基础功能测试验证完成、系统趋于稳定的情况下,才会进行性能测试,否则性能测试是无意义的。2、测试团队组建根据该项目的具体情况,组建一个几人的性能测试team,其中DBA是必不可少的,然后需要一至几名系统开发人员(对应前端、后台等)
阅读全文
摘要:性能测试的概念 性能测试是指通过特定方式,对被测系统按照一定策略施加压力,获取系统 响应时间、TPS(Transaction Per Second)、吞吐量、资源利用率等性能指标,以期保证生产系统的性能能够满足用户需求的过程。 性能测试一般是指大数据量的测试 性能测试一般包含3个方面 应用在客户端性
阅读全文
摘要:固定定时器 如果你需要让每个线程在请求之前按相同的指定时间停顿,那么可以使用这个定时器;需要注意的是,固定定时器的延时不会计入单个sampler的响应时间,但会计入事务控制器的时间 1、使用固定定时器位置在http请求中;每次http请求前延迟3秒; 配置路径——定时器——固定定时器;如下图: 2、
阅读全文
摘要:jmeter计数器 如果需要引用的数据量较大,且要求不能重复或者需要递增,那么可以使用计数器来实现 如:新增功能,要求名称不能重复 1,新增计数器 计数器:允许用户创建一个在线程组之内都可以被引用的计数器。 计数器允许用户配置一个起点,一个最大值,增量数,循环到最大值,然后重新开始,继续这样,直到测
阅读全文
摘要:postman应用实战 下面以微信公众平台举例: 第一步、先创建文件夹 第二步、打开postman,创建collections 第三步、设置环境变量,全局变量 设置环境变量;如下图: 设置全局变量;如下图: 第四步、录入接口用例 接口测试用例;如下图: 把接口测试用例录入到postman中;如下图:
阅读全文
摘要:newman简介 newman是为Postman而生,专门用来运行Postman编写好的脚本; 使用newman,你可以很方便的用命令行来执行postman collections。 newman的安装 1.先下载Node.js;https://nodejs.org/en/ 2.安装NodeJs(很
阅读全文
摘要:postman定义公共函数 在postman中,如下面的代码: 1、返回元素是否与预期值一致 var assertEqual=(name,actual,expected)=>{tests[`${name}:实际结果: ${actual} , 期望结果:${expected}`]=actual exp
阅读全文
摘要:什么时候会用到参数化 比如:一个模块要用多组不同数据进行测试 == 验证业务的正确性 Login模块:正确的用户名,密码 成功;错误的用户名,正确的密码 失败 postman实现参数化 在实际的接口测试中,部分参数每次发送请求时都要唯一(比如注册), 这时可采用postman把测试数据进行参数化处理
阅读全文
摘要:postman设置接口关联 在实际的接口测试中,后一个接口经常需要用到前一个接口返回的结果, 从而让后一个接口能正常执行,这个过程的实现称为关联。 在postman中实现关联操作的步骤如下: 1、利用postman获取上一个接口指定的返回值,可以在tests中提取响应中的字典做全局变量;如下图 2、
阅读全文
摘要:Runner的使用 postman不仅可以单独运行某个接口,postman的 Runner模块可以运行多个接口,可以实现真正意义上的自动化接口测试 Runner的主要功能如下 按顺序调用接口,执行用例; 批量发送请求; 对接口数据进行参数化。 操作步骤: 1、在postman底部点击Runner按钮
阅读全文
摘要:postman环境变量、全局变量设置 在公司中,一般会存在开发环境、测试环境、线上环境等,如果需要在不 同的环境下切换做接口测试,显然我们需要把所有接口的域名进行修改,如果接 口测试用例较多,那么修改会非常费力,postman可直接通过切换环境来实现多 个环境中的参数切换。 postman设置环境变
阅读全文
摘要:postman设置断言 作为一款接口测试工 具,postman需要对发送请求后返回的结果是否正确做验证,在postman中通过 tests页签做请求的验证,也称为断言。 postman设置断言的流程 1、在tests页签截取要对比的实际响应信息(响应头、响应正文、响应状态码等)2、利用断言语句 te
阅读全文
摘要:postman持久化保存 1、点击postman的Collections页签,点击 + New Collection创建(可以当成项 目并重命名) 2、新增后,再点击Collection中的“ ... ” ,然后点击“Add Folder”,新建一个文件 夹(可以当成模块,可重命名),再右击Add
阅读全文
摘要:postman模拟请求头: 页面访问请求(get方法):https://www.baidu.com/s?wd=猫 该https请求在页面上可以进行根据最后的关键字参数进行搜索,但使用 postman模拟请求时,传递给服务器的User-Agent是postman,会导致服务器拒 绝请求,可以利用pos
阅读全文
摘要:postman发送POST请求 示例:微信公众平台创建用户标签接口,业务操作如下: 1、打开微信公众平台,微信扫码登录:https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login 2、打开微信开放文档,找到用户管理-用户标签管理的接口
阅读全文
摘要:发送带参数的GET请求 示例:微信公众号获取access_token接口,业务操作步骤 1、打开微信公众平台,微信扫码登录:https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login 2、打开微信开放文档,找到获取access_toe
阅读全文
摘要:Postman的介绍 Postman 是一款谷歌开发的接口测试工具,使API的调试与测试更加便捷。 它提供功能强大的 Web API & HTTP 请求调试。它能够发送任何类型的HTTP 请求 (GET, HEAD, POST, PUT..),附带任何数量的参数+ headers。 postman是
阅读全文
摘要:以微信开发文档中的获取token举例: 微信开放文档地址:https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Get_access_token.html 功能测试用例和接口测试用例基本一样;每个公司规定的不一样,以实际
阅读全文
摘要:在企业使用jmeter开展实际的接口自动化测试工具,建议按如下操作流程, 可以使整个接口测试过程更规范,更有效。 接口自动化的流程: 1、获取到接口文档:swagger、word、excel ... 2、熟悉接口文档然后设计测试用例(一般都是先在excel中编写) 3、进行用例评审 4、将excel
阅读全文
摘要:元件的执行顺序: 配置元件-->前置处理程序-->定时器-->取样器-->后置处理程序(除非Sampler 得 到的返回结果为空)-->断言(除非Sampler 得到的返回结果为空)-->监听器 (除非Sampler 得到的返回结果为空) 关于执行顺序,有两点需要注意: 前置处理器、后置处理器和断言
阅读全文
摘要:jmeter连接mysql数据库 大致步骤如下: 1、下载mysql的jar包放入到jmeter的lib下,然后重启jmeter 2、配置JDBC Connection Configuration 3、配置JDBC Request 4、在请求中引用查询到的结果变量,可以结合计数器取每一个结果值:${
阅读全文
摘要:jmeter参数化 在实际的测试工作中,我们经常需要对多组不同的输入数据,进行同样的测试操作步骤,以验证我们的软件的功能。这种测试方式在业界称为数据驱动测试, 而在实际测试工作中,测试工具中实现不同数据输入的过程称为参数化设置。 jmeter提供多种参数化设置的方式,常用的有: 1、使用 用户定义的
阅读全文
摘要:json断言元件介绍: json断言元件与响应断言元件的功能类型,它只针对响应正文为json数据格 式的内容进行断言功能。 添加路径:右击http请求——断言——json断言 如下图展示: json断言元件字段介绍: 名称/注释:自定义描述性文字 Assert JSON Path exists:断言
阅读全文
摘要:响应断言元件介绍: 响应断言元件的功能是对接口的响应信息进行自动断言校验,来判断接口测 试得到的接口返回值是否正确。jmeter中该元件支持将请求或响应的各个字段与 模式字符串进行比较。有了该元件,就可以完成自动化接口测试,而不需要用手 工核对接口返回的结果 路径:右击http请求——断言——响应断
阅读全文
摘要:json提取器元件介绍: json提取器与正则表达式提取器功能类似,也是用来截取响应信息的部分保 存到指定的变量中去,不同的是,它只能用来处理响应正文,并且响应正文必须 是json格式的。它的优势是能更快更灵活的截取json格式文本中的内容。json提 取器在jmeter5.2.1版本中部分字段没有
阅读全文
摘要:正则表达式提取器元件介绍 正则表达式提取器是位于后置处理器中的一个元件,它的作用是在请求发出 并得到响应后,把响应信息中的部分通过正则表达式提取所需值,并将结果存储 到给定的变量名中。可通过后置处理器--正则表达式提取器添加。 常用的使用场景:关联的实现 从前一个请求的响应结果中,提取到某些需要的内
阅读全文
摘要:1、get请求 http://www.hnxmxit.com/ 2、带参数的get请求 微信公众号获取token请求 3、自定义头部信息的请求 百度搜索请求 https://www.baidu.com/s?wd=猫 4、post请求 微信公众号添加用户标签请求 注:post请求中如果body中的数据
阅读全文
摘要:HTTP请求默认值 在公司内部进行测试的时候,一般测试环境访问的接口地址(服务器名称 或IP)、端口、协议一般都是不变的,但http请求取样器每个请求都要求写一遍 这些信息,在实际HTTP请求取样器数量很多的情况下,这样不是很方便,另外 公司内部的测试环境地址进行变更,所有取样器的地址也要做相应修改
阅读全文
摘要:HTTP信息头管理器 HTTP信息头管理器是在有需要模拟请求头部的时候进行设置的,添加方式 是 右击线程组 -- 配置元件 -- HTTP信息头管理器 可以通过抓包工具或者F12获取http请求的header头部信息;如下图: 复制并点击jmeter中的从剪贴板添加,就会自动添加到http信息头管理
阅读全文
摘要:察看结果树选项介绍: 名称:本属性用于标识一个察看结果树元件,建议使用一个有意义的名称 注释:对于测试没有任何作用,仅用户记录用户可读的注释信息 所有数据写入一个文件: 文件名:可以通过浏览,选择一个文件,这样jmeter在执行的过程中,会将所 有的信息输出到文件;也支持打开一个结果文件进行浏览 显
阅读全文
摘要:使用Jmeter发送HTTP请求 取样器是用来模拟用户操作,向服务器发送请求以及接收服务器的响应数 据的一类元件,其中HTTP请求取样器是用来模拟常用的http请求的 步骤如下: 步骤一:添加线程组 右击测试计划——添加——线程(用户)——线程组 如下图: “线程组”的意思:JMeter是由Java
阅读全文
摘要:JMeter 的主要测试组件总结如下: 1. 测试计划是使用 JMeter 进行测试的起点,它是其它 JMeter 测试元件的容器 2. 线程组代表一定数量的并发用户,它可以用来模拟并发用户发送请求。实际的 请求内容在Sampler中定义,它被线程组包含。 3. 监听器负责收集测试结果,同时也被告知
阅读全文
摘要:jmeter 5.2.1 安装步骤: 1、安装JDK配置好环境变量,必须JDK1.8及以上 2、进入jmeter下载页面:http://jmeter.apache.org/download_jmeter.cgi 3、下载相应安装包,如:apache-jmeter-5.2.1.zip 4、把压缩包解压
阅读全文
摘要:jmeter概述与工作原理 JMeter 是 Apache 基金会 Jakarta 上的一个纯 Java 开源项目,起初用于基 于 Web 的压力测试(pressure test),后来其应用范围逐渐扩展到对文件传输 FTP, 大型数据库(JDBC 方式),脚本程序(CGI, Perl 等),Web
阅读全文