- 博客(101)
- 收藏
- 关注
原创 DevOps流程的简单总结
DevOps流程包含:计划(plan)、编码(code)、编译(build)、测试(test)、发布(release)、部署(deploy)、运营(operate)、监控(monitor),这是一个循环的过程。DevOps是依托容器、自动化、云计算等技术及精益化管理形成的一种项目过程,有效的促进了开发、测试、运营、运维、QA等团队间的协作,使得团队内、跨团队之间的协作得到极大的提升,可以帮助企业做到产品精益化、运营精益化、管理精益化。
2024-04-19 16:43:52
619
原创 接口自动化测试(python+pytest+requests)
Requests库是python中的“浏览器”,基于urllib的HTTP库安装/验证requests:命令行终端分别输入 pip install requests / pip show requests操作步骤:导包、发送接口请求、查看响应结果Requests发送请求requests.请求方法(url, params=None, data=None, json=None, headers=None, files=None)常见的请求方法:get/post/put/delete。
2024-04-10 23:03:46
1243
原创 压测k8s服务资源不足怎么处理
假设某个服务运行了4个Pod,当前的CPU使用率为50%,预期的CPU使用率为25%,那么满足预期的实际Pod数量就是4 * (50% / 25%) = 8个,即需要将Pod容量扩大一倍,增加4个Pod来满足需求。在Kubernetes(简称K8s)中,Pod是最小的调度单元,而Pod的副本则是指同一个Pod的多个实例。Kubernetes中的Pod副本是指一个Pod的多个副本。负载生成器的负载模式不当:如果使用了某些特定的负载生成器,可能需要调整其行为以产生更均匀的负载。以下是几个常见的负载均衡方法。
2024-03-27 17:22:44
1214
原创 docker 和K8S知识分享
比如写了个项目,并且在本地调试没有任务问题,这时候你想在另外一台电脑或者服务器运行,那么你需要在另外一台电脑或者服务器配置相同的软件,比如数据库,web服务器,必要的插件和库等等,而且你还不能保证软件一定能够运行起来,因为别人用的可能是完全不同的操作系统,即便同样使用linux系统,每个发行版也会有不同的区别,为了模拟完全相同的本地开发环境。我们想到可以用虚拟机,但是虚拟机需要运行整个操作系统,不但体积臃肿,内存占用高,程序性能也会受到影响,这时候我们的docker就派上用场。
2024-03-23 17:02:07
1179
1
原创 httprunner4详解
httpruuner官方文档:https://httprunner.com/docs/introduction/overview/案例1:使用电商开源项目演示:项目地址:https://github.com/macrozheng/mall案例2:使用erp2项目演示:开源项目:http://erp2.hzb-it.com/HttpRunner v4.0 同时采用了 Golang/Python 两种编程语言,底层会有两套相对独立的执行引擎,兼具 Golang 的高性能和 pytest 的丰富生态。
2024-03-19 15:34:28
1383
原创 Fiddler抓包教程
Fiddler是位于浏览器和服务器之间的请求和响应代理,所以它可以截获浏览器和服务器之间的所有HTTP通讯,(可以打开Fiddler,然后使用chrome查看一下代理设置)点击【Browse】→选择文件要安装的位置→点击【install】进行安装。B/S模式的工作过程,简单的讲述访问一个网站的过程。运行下载文件,点击【I Agree】进入安装下一步骤。
2024-03-13 17:51:41
2800
原创 git使用教程14-Pycharm版本控制与分支管理
(1)Version Control System 版本控制系统,简称VCS。(2)版本控制系统分类:集中式版本控制工具:SVN分布式版本控制工具:Git。
2024-03-05 13:06:57
2955
1
原创 Git问题处理汇总
原因:服务器公钥(publickey)未添加至github, 所以无法识别。因而需要获取本地电脑公钥,然后登录github账号,添加公钥至github就可以了.生成密钥:ssh-keygen -t rsa -C "email",其中 email是github的登陆邮箱,然后一直按回车键;同级目录下会出现密钥。第三步:登录github账号,进入个人设置User settings--->ssh keys-->new ssh key 添加密钥即可。第二步: 进入id_rsa.pub, 复制密钥。
2024-03-05 12:34:34
463
原创 python接口自动化-15.镜像构建的好处
在接口自动化完工后,测试需要思考的一个问题是能够让自动化项目挂载到公司的CICD流程中去,本文选用的是最通用的docker镜像方式,构建走jenkins。
2023-12-10 10:59:47
906
原创 接口自动化测试实战:JMeter+Ant+Jenkins+钉钉机器人群通知完美结合
搭建jmeter+ant+jenkins环境有些前提条件,那就是要先配置好java环境,本地java环境至少是JDK8及以上版本,最好是JAVA11或者JAVA17等较高的java环境,像jenkins这种持续构建工具基本都在向上兼容JAVA的环境,以前的JAVA8或者以下版本可能在运行jenkins等时可能会有异常导致执行失败或者提示java版本太低需要更新版本等,建议本地电脑环境装两套JAVA环境,一个JAVA8、一个JAVA17,需要使用时根据配置的环境变量即可切换JAVA版本。
2023-11-17 18:19:10
1121
原创 2.FastRunner定时任务Celery+RabbitMQ
解决celery执行时报错:KeyError: 'async' 报错原因:Python3.6及以上版本和celebry4.0以上版本中async关键字发生冲突。python manage.py celery beat -l info 启动beat监听定时任务。1.安装rabbmitMQ中间件,并配置setting中的BROKER_URL(默认一般不用修改)不能用高版本Python 用3.5以下,因为项目的celery用的3.1。登陆RabbitMQ后台。
2023-11-16 15:42:06
983
1
原创 ●●接口自动化框架设计思路
接口自动化测试框架的设计思路是一个复杂而又关键的过程。在设计框架时,我们需要明确框架的目标和范围,并搭建相应的测试环境。然后,我们可以设计测试用例、实现框架功能、编写测试脚本、执行测试用例,最后分析测试结果和生成报告。定期维护和优化框架是一个不可或缺的环节。通过合理的设计和实现,一个强大而灵活的接口自动化测试框架将为我们的测试工作提供有力的支持。
2023-11-14 16:56:44
289
原创 接⼝⾃动化的覆盖率
在软件开发过程中,测试是非常关键的环节。为了保证软件的质量和可靠性,测试覆盖率成为了一个重要的指标。测试覆盖率是指在一定的测试环境下,已经对软件代码进行了多大程度的覆盖测试。测试覆盖率是衡量测试工作的效果的重要依据。测试覆盖率高的测试工作意味着测试完成的覆盖面广,错误率低,软件质量高。因此,在软件开发过程中,测试覆盖率是非常重要的指标。
2023-11-13 19:44:24
166
原创 win10忘记mysql密码的解决办法
如果忘记了,可以在“开始”按钮(Windows键)找到安装“MySQL”文件夹,打开并选择“MySQL Server 5.6”文件夹,会看到两个Mysql commond 打开的快捷方式。4、其实,我们之所以想知道MySQL的安装位置,是为了获取其下的.ini文件的位置。需要注意的是,不同版本的.ini文件的名称不同,在MySQL 5.1时,它是my.ini,而在MySQL 5.6则是my-default.ini。2、在服务窗口,可以找到“MySQL56”,选定,将其“停止”即可。
2023-11-06 20:14:31
427
原创 【DRF系列】-1.DRF初识
框架是一个用于构建Web API的强大而又灵活的工具。通常简称为DRF框架。DRF框架是建立在Django框架基础之上,二次开发的开源项目。它有以下特点:提供了定义序列化器Serializer的方法,可以快速根据 Django ORM 或者其它库自动序列化/反序列化;提供了丰富的类视图、Mixin扩展类,简化视图的编写;丰富的定制层级:函数视图、类视图、视图集合到自动生成 API,满足各种需要;多种身份认证和权限认证方式的支持;内置了限流系统;直观的 API web 界面;
2023-08-30 10:05:50
148
原创 1.接口自动化测试平台FasterRunner--window安装部署(调试
FasterRunner是在原接口自动化测试平台HttpRunnerManager基础上进行了全新的升级,页面样式全新改版,平台架构进行了前后端(Vue+Django)分离设计。整体操作方式跟HttpRunnerManager基本相同,关于HttpRunnerManager的部署与使用等,可点击HttpRunnerManager系列章节进行查阅。官方网址:后端:https://github.com/httprunner/FasterRunner。
2023-08-08 19:54:08
455
原创 客户端SDK测试是什么?如何测?
精心设计的Demo以及多解决方案的形式或许可以最大程度满足测试需要,但是需要较大的Demo开发测试投入,也使得问题暴露的时间大大滞后。在云信IM登录的场景,登录时可能收到大量同步数据包和离线消息包,那么对这些数据包的解析以及本地储存的性能就要进行保证,否则可能出现登录响应很慢甚至卡住的问题,所以测试时就需要考虑这个场景的性能。基于接口调用的自动化测试,需要有产品的思路、开发的知识和测试的思维,做起来有难度。而且测试人员可以比较直观的看到界面表现,上手快,所以在客户端SDK测试中比较常用,也是比较有效的。
2023-07-19 16:38:14
466
原创 appium原理图
由两部分组成,Appiumclient、Appium sever,如果说整个自动化测试环境的话,还有移动设备端三个部分完成。
2023-05-30 21:34:33
202
1
原创 19.appium+python自动化-安装app三种方式
1.在app自动化之前,首先手机上有要被测试的app,如何把电脑本地上的app安装到手机上呢?可以在运行自动化代码前,在cmd输入adb指令,把电脑app安装到手机上。1.如果没有本地的app包,有个在线下载地址也是可以实现自动安装的。比如打完测试包后上传到一个指定的下载地址,通过这个下载地址也能实现安装。1.appium也可以实现自动安装app,在工程下单独建个app文件夹,待安装的app放到此文件夹下。2.以百度阅读app为案例,百度搜索:百度阅读app,从下载页面获取到app的下载地址。
2023-05-30 14:40:14
738
原创 16.appium+python自动化-adb相关
一、adbdevices连不上手机的几种情况二、adbshell模拟点击事件(inputtap)三、adbshell按键操作(inputkeyevent)四、adbshell输入中文(ADBKeyBoard)五、adboffline(5037端口被占)六、adb文件导入和导出(pullpush)七、adblogcat查看日志
2023-05-29 17:50:12
433
原创 15.appium+python自动化-动作事件汇总
长按操作是经常会遇到的场景,通过driver可以直接调出long_press_keycode方法,但是这个方法是长按手机上某个按钮,比如长按电源键,长按home键。长按某个元素或者长按屏幕上某个点,就需要用到TouchAction里面提供的long_press操作了。
2023-05-25 17:23:47
121
原创 13.Appium+python自动化-Appium Desktop介绍
Appium Desktop是一款用于Mac、Windows和Linux的开源应用,它提供了Appium自动化服务器在一个漂亮灵活的UI中的强大功能。它是一些与appium相关的工具的组合:Appium服务器的图形界面。您可以设置选项、启动/停止服务器、查看日志等…您也不需要使用Node / NPM安装Appium,因为节点运行时将与Appium桌面绑定。您可以使用一个检查器来查看应用程序的元素,了解它们的基本信息,并与它们进行基本的交互。
2023-05-22 20:47:18
976
原创 14.Appium+python自动化-DesiredCapabilities详解
Desired Capabilities 是由 keys 和 values 组成的 JSON 对象。
2023-05-22 20:41:38
194
原创 12.Appium+python自动化-iOS模拟器(iOS Simulator)安装app和原生定位
1.在iOS模拟器上必须是通过xcode打出来的.app的安装包,真机的包(.ipa)选择Debug-iphone os,模拟器的包(.app)选择Debug-iphone Simulator2.有以下几个方法都能安装到模拟器上:--运行脚本,会自动安装上去--通过指令安装,也就是这篇讲的--通过appium上的配置也能安装,下篇讲appium调试app时候定位元素--要是会xcode,可以直接拿到拿到源码,用xcode直接运行上去。
2023-05-22 20:36:07
2876
原创 11.Appium+python自动化15-在Mac上环境搭建,启动示例&解决启动appium时的报错问题
mac上搭建appium+python的环境需要准备的软件1.nodejs2.npm3.cnpm4.appium版本号1.6.4(appium-desktop1.1.0)5.pip7.OS版本号10.128.xcode版本号8.3.29.ios模拟器版本号10.3。
2023-05-22 20:25:09
604
原创 2、python+monkey 自动化稳定性测试
实际使用中发现,方法1和方法2在直接运行python文件的时候没有问题,但是把py文件打包成exe程序后,就会出现无法获取到cmd命令的返回值,经过分析为:打包后程序的cmd调试窗口被禁用了,就会导致程序无法获取返回值。“System appears to have crashed"结果为false)并筛选monkey日志中的crash和anr数量。将adb devices的返回结果写入到txt文件中,再逐行读取,并进行字符串匹配,检测实际的adb设备名;执行完成monkey,生成txt日志后,
2023-04-22 23:47:33
1228
1
原创 7.Appium+python自动化-安卓模拟器:AVD 模拟器&Android夜神模拟器
有些小伙伴没android手机,这时候可以在电脑上开个模拟器玩玩。
2023-04-21 14:52:19
1266
1
原创 9.Appium+python自动化-appium元素定位&native和webview切换
appium定位app上的元素,可以通过id,name.class这些属性定位到。
2023-04-19 16:09:18
1322
原创 8.Appium+python自动化-adb指令
2.一定要看到上图红色区域的,设备名称,然后接着是device(如果看到这里是offline,那就是adb端口被占了)adb logcat > D:/Temp/1.txt(1.txt必须在电脑上存在,才能写入logcat内容)学android测试,adb是必学的,有几个常用的指令需要熟练掌握。(这里是app的包名,不是文件名,包名用前面的aapt工具查看)2.以淘宝为例,淘宝的包名是:com.taobao.taobao。adb push <本地路径> <远程路径>4.进shell模式。
2023-04-19 14:28:52
252
原创 4.Appium+python自动化-处理输入中文问题
在做app自动化过程中会踩很多坑,咱们都是用的中文的app,所以首先要解决中文输入的问题!本篇通过屏蔽软键盘,绕过手机的软键盘方法,解决中文输入问题。
2023-04-19 11:29:42
579
原创 3.Appium+python自动化-Remote远程控制
在启动app的时候有这样一行代码driver = webdriver.Remote('http://192.168.1.1:4723/wd/hub', desired_caps),很多小伙伴不知道这个ip和端口哪里来的,于是小编决定写一篇关于这个appium的服务器ip文章!一般来说appium中127.0.0.1这个地址的默认的不需要修改。在做自动化过程中,如果遇到需要远程操作的话,这个功能就可以派上用场了。
2023-04-19 10:55:16
434
原创 2.Appium+python自动化-启动淘宝&元素定位uiautomatorviewer
前面环境已经搭建好了,接下来就是需要启动APP,如何启动app呢?首先要获取包名,然后获取launcherActivity。获取这两个关键东西的方法很多,这里就不一一多说,小伙伴们可以各显神通。小编这里主要给大家推荐一个sdk自带的实用工具aapt.aapt即Android Asset Packaging Tool,在SDK的build-tools目录下。该工具可以查看apk包名和launcherActivity,当然还有更多的功能,有兴趣的可以查看相关资料。
2023-04-19 10:47:12
558
原创 1.Appium+python自动化1-环境搭建
npm是一个node包管理和分发工具,有了npm,后面就可以输入指令在线安装appium(打开 cmd输入:npm install –g appium但是一般不推荐这种,下载比较慢,所以用下面这种客户端安装)1.因为adb是在D:\androidsdk\android-sdk-windows\platform-tools这个目录下的,所以上面添加了环境变量后,可以直接在cmd里面运行了。2.下载后一路傻瓜式安装,安装完成后,运行cmd,输入node –v查看版本号,然后输入npm。
2023-04-14 16:00:46
133
原创 8.Python——列表
也就是一个迭代对象。[['姓名', '年龄', '薪资', '城市'], ['Russell1', 18, 15000, '西安'], ['Russell2', 19, 20000, '北京'], ['Russell3', 20, 21000, '杭州']]内置函数 reversed()也支持进行逆序排列,与列表对象 reverse()方法不同的是,内置函数reversed()不对原列表做任何修改,只是返回一个逆序排列的迭代器对象。将目标列表的所有元素添加到本列表的尾部,属于原地操作,不创建新的列表对象。
2023-04-13 17:17:55
118
原创 Locust性能测试教程
提到性能测试,大部分小伙伴想到的就是LR和jmeter这种工具,小编一直不太喜欢写这种工具类的东西,我的原则是能用代码解决的问题,尽量不去用工具。python里面也有一个性能测试框架Locust,本篇简单的介绍Locust的基本使用环境准备:python3.6windows电脑locustLocust是一款易于使用的分布式用户负载测试工具。它用于对网站(或其他系统)进行负载测试,并确定系统可以处理多少并发用户。这个想法是,在测试期间,一群蝗虫(Locust)会攻击你的网站。
2023-04-13 15:47:56
4223
原创 Pytest系列5 - skip、skipif跳过用例
pytest.mark.skip 可以标记无法在某些平台上运行的测试功能,或者您希望失败的测试功能希望满足某些条件才执行某些测试用例,否则pytest会跳过运行该测试用例跳过非Windows平台上的仅Windows测试,或者跳过依赖于当前不可用的外部资源(例如数据库)的测试。
2023-04-12 15:55:35
326
原创 接口测试是什么?以及常见测试工具
接口一般来说有两种,一种是程序内部的接口,一种是系统对外的接口。系统对外的接口:比如你要从别的网站或服务器上获取资源或信息,别人肯定不会把数据库共享给你,他只能给你提供一个他们写好的方法来获取数据,你引用他提供的接口就能使用他写好的方法,从而达到数据共享的目的,比如说咱们用的app、网址这些它在进行数据处理的时候都是通过接口来进行调用的。
2023-04-12 11:14:25
115
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人