JMETER 接口自动化测试案例(51测试网)

已关闭评论

JMETER 接口自动化测试案例   接口测试是测试系统组件间接口的一种测试,主要用于测试系统与外部其它系统间的接口,以及系统内部各个子模块之间的接口。测试的重点是要检查接口参数传递的正确性,接口功能实现的正确性,输出结果的正确性,以及对各种异常情况容错处理的完整性和合理性。传统的接口测试方法为:构造发送报文–报文发送–获得返回报文–检查返回报文的正确性(通过查询数据库或者数据文件计算对比)。传统的接口测试方法效率低,并且不可重复执行,不适合当前软件系统快速开发迭代的趋势。接口的自动化测试成本低收益高,使用一些开源工具或一些轻量级的方法,在测试用例开发成本不高的情况下能取得较好的测试效果。开源测试工具Jmeter可以承担接口请求、结果解析和断言的工作,可以作为轻量级接口自动化的实现手段。

一切存在的意义在于存在本身

已关闭评论

第三旋臂边缘 一颗蓝色行星上 碳基生物正在庆祝 他们所在的行星 又在该恒星系里 完成一次公转 他们也知道 整个太阳系 也是围绕着银河系公转 错过的位置 永远也不会再回来了 而银河系也在飞驰 甚至空间本身也在膨胀 他们走过的路 穷尽时光,无法回头 而他们的高歌跨过时空 而万物的细语超越时间 他们曾拥有闪亮的日子 他们的梦与渴望将化为光 在每一个凶险的转角处 波与粒也在喃喃自语: 一切存在的意义 在于存在本身 新年快乐!

[Python]从入门到精通视频 (全60集)

已关闭评论

某网站搬运的python从入门到精通视频(全60集)视频教程python入门教程-1-Python编程语言历史及特性.mkvpython入门教程-2-Python编程语言初接触.mkv# ]8 V6 |( F1 bpython入门教程-3-Python程序文件结构.mkvpython入门教程-4-准备Python编程环境.mkv3 h’ ^7 s6 E- Q3 s/ G1 l; L! b- t2 Jpython入门教程-5-Python编程语言基础技术框架(1).mkvpython入门教程-6-Python编程语言基础技术框架(2).mkvpython入门教程-7-Python编程语言基础技术框架(3)之print输出.mkv2python入门教程-8-Python编程语言基础技术框架(4)之函数介绍.mkvpython入门教程-9-Python编程风格(1).mkvpython入门教程-10-Python编程风格(2).mkv0 ]# ^3 d0 t: G% |3 npython入门教程-11-Python对象特性、比较及核心数据类型.mkv&python入门教程-12-Python核心数据类型及类型显式转换.mkvpython入门教程-13-Python数据类型显式转换及数值类型.mkv- python入门教程-14-序列类型详解之字符串(1).mkv, python入门教程-15-序列类型详解之字符串(2).mkv’ R7 b1 d# \* r2 P) {, A# A/ _python入门教程-16-序列类型之列表(1).mkvpython入门教程-17-序列类型之列表(2).mkv9python入门教程-18-序列类型之元组.mkvpython入门教程-19-Python核心数据类型之字典.mkvpython入门教程-20-Python核心数据类型之字典(2).mkvpython入门教程-21-可调用对象,以及列表和字典的原处修改特性.mkv7 python入门教程-22-Python的集合类型详解.mkvpython入门教程-23-容器数据类型特性总结.mkv! python入门教程-24-表达式与运算符.mkvpython入门教程-25-运算符优先级和Python语句概述.mkvpython入门教程-26-条件测试及if语句.mkvpython入门教程-27-while循环.mkv”python入门教程-28-for循环.mkv7 python入门教程-29-for循环(2).mkvpython入门教程-30-迭代器和列表解析.mkv3python入门教程-31-列表解析和生成器.mkv9python入门教程-32-Python文件对象.mkv* }” u  P2 a; r+ n7 P6 Cpython入门教程-33-文件对象的属性与方法.mkv)python入门教程-34-OS模块.mkvpython入门教程-35-OS模块的常用接口.mkvpython入门教程-36-os-path模块.mkv3python入门教程-37-Python函数基础.mkv$python入门教程-38-函数作用域(变量名解析).mkv*python入门教程-39-函数参数及其匹配模型.mkv.python入门教程-40-匿名函数lambda.mkv6python入门教程-41-Python函数式编程.mkvpython入门教程-42-Python函数闭包及装饰器.mkvpython入门教程-43-yield与生成器.mkv; python入门教程-44-递归函数.mkvpython入门教程-45-面向对象的基础概念.mkv#1 epython入门教程-46-面向对象的基础概念(2).mkvpython入门教程-47-在Python中使用类.mkv, python入门教程-48-Python类方法中的可用变量.mkvpython入门教程-49-类继承和属性搜索模型.mkvpython入门教程-50-运算符重载.mkv4 vpython入门教程-51-Python模块基础.wmv3python入门教程-52-Python模块的工作机制.wmv*python入门教程-53-Python包.wmv( Jpython入门教程-54-使用disutils打包.wmv*python入门教程-55-使用disutils打包(2).wmv0 python入门教程-56-异常的基本概念.wmvpython入门教程-57-检测和处理异常.wmv;python入门教程-58-try语句.wmvpython入门教程-59-标准异常类及断言.wmvpython入门教程-60-Python执行环境及doctes.wmv 链接:https://pan.baidu.com/s/1dprp_IV0GxtYNtCs6orBUg 提取码:n476 复制这段内容后打开百度网盘手机App,操作更方便哦

HeadlessChrome自动化测试探索

已关闭评论

埋点一直是B站 HTML5 播放器开发和测试过程中的一个痛点,埋点的种类和接口参数很多,测试很麻烦也很容易出错 虽然测试很麻烦,但它们的规则都很简单,比如点击或 hover 一个按钮、错误上报、播放和性能上报,那么能不能通过自动化的 E2E 测试来代替这些又繁琐又机械化又容易出错的测试工作呢? 在一次埋点线上事故后,我花了一天时间做了一些探索,最后效果还不错,在这里做一下简单的总结 编写测试脚本 模拟用户操作就需要用到无头浏览器,我采用了 Jest + Puppeteer 的组合 Jest 是一个测试框架,Puppeteer 是用来控制 Chrome 或 Chromium 选择 Jest 是因为我对 Jest 最熟悉,然后又找到了一个 preset: jest-puppeteer,不是必需的,但它可以简化很多 Puppeteer 操作 安装依赖: 1 npm install –save-dev jest jest-puppeteer puppeteer 测试脚本很简单: 1 describe(‘log’, () => { 2 beforeAll(async () => { 3 page.goto(‘https://www.bilibili.com/video/av44890855’); 4 }); 5 6 it(‘play_screen’, async (done) => { 7 page.on(‘request’, (request) => { 8 if (request.url().match(/^https:\/\/data\.bilibili\.com\/log\/web\?play_screen…参数参数/)) { 9 done(); 10 } 11 }); 12 page.click(‘video’); 13 }); 14 }); 让 HeadlessChrome 打开一个播放页,监控页面请求的接口,模拟点击 video 元素,监控到浏览器请求了 play_screen 埋点即测试成功 看起来没什么问题,开开心心地执行了测试,结果 failed 发生了什么?配置 headless: false 观看了一下测试过程 发现是因为检测到浏览器不支持 HTML5 播放器,加载了 Flash 播放器 Puppeteer 文档里说道 Puppeteer is bundled with Chromium–not Chrome…Puppeteer does not support licensed formats such as AAC or H.264 解决方法也很简单,把 Puppeteer 自带的 Chromium 换成本地的 Chrome 1 launch: { 2 executablePath: ‘/Applications/Google Chrome.app/Contents/MacOS/Google Chrome’ 3 } 测试通过 Chrome as a service 刚才使用了本地的 Chrome,会依赖本地环境,而且想作为自动化测试跑在测试机上也是不行的 所以我又在测试机上跑了一个 docker 容器:browserless/chrome,它可以把 Chrome 当做一个 service,测试脚本使用 websocket 协议操作 docker 里的 Chrome,这样就避免了依赖本地 Chrome 启动容器: 1 docker pull browserless/chrome:release-chrome-stable 2 docker run -d -p 3000:3000 browserless/chrome:release-chrome-stable 使用: 1 connect: { 2 browserWSEndpoint: ‘ws://localhost:3000’ 3 } 劫持 js 这样用的是线上版本,根本没有测试本地代码啊! 哦,忘了说了,还需要把线上 js 劫持为本地版本 1 await page.setRequestInterception(true); 2 3 page.goto(‘https://www.bilibili.com/video/av44890855’); 4 page.on(‘request’, (request) => { 5 if (request.url().match(/player\.js/)) { 6 request.respond({ 7 status: 200, 8 contentType: ‘application/javascript’, 9 body: fs.readFileSync(‘dist/release/player.js’).toString() 10 }); 11 } else { 12 request.continue(); 13 } 14 });