- 博客(28)
- 收藏
- 关注
原创 ngnix响应超时接口报错504 Gateway Time-out 处理
之前接口测试新增了根据文件(excel)来执行用例,excel中有多少行数据则执行多少次用例,今天执行100条数据时接口响应504,前端响应网络错误,检查服务器资源时看到后端django函数实际还是在运行的,这通常意味着你的请求已经成功发送到了服务器,但是服务器在尝试处理请求时未能在规定的时间内从另一个服务器(如上游服务器、数据库服务器或外部API)获得响应。但是,如果上游服务器有时需要更长时间来处理请求(例如,因为进行了复杂的计算或查询了大型数据库),则您可能需要进一步增加这个值。
2024-12-06 20:40:18
971
原创 解决当测试报告中场景过多执行后不返回测试结果的问题记录
其实就是当我们执行完所有的测试场景后,一次性往数据库写入的数据超过了mysql设置的max_allowed_packet的最大值,所以需要更改max_allowed_packet参数的值,否则测试报告写入数据库就会失败。如果你不想通过卷来映射,也可以在容器中通过vim修改/etc/mysql/my.cnf文件来更改max_allowed_packet的值,效果是一样的,只不过每次部署以后都需要去修改此文件。my.cnf就是我们刚刚添加max_allowed_packet配置的文件。
2024-09-05 16:19:10
322
原创 Vue项目通过CDN引入依赖减少打包文件体积优化加载性能
5、然后将使用CDN引入的依赖,在项目中找到原本的import导入并删除,如原本的mian.js中通过import ElementPlus from 'element-plus';我们现是从CDN引入依赖并产生了全局变量ElementPlus,直接注释掉即可。2、在vue.config.js中配置。
2024-08-22 11:45:33
477
原创 Nginx代理用户上传的文件在前端显示
在构建django和nginx容器时,我们挂载的卷名相同,这样做的目的是当django识别SVG源码转换为PNG图片,保存在/app/upload_files/captcha路径下的同时,也会同步到另外一个容器nginx的代理目录/usr/share/nginx/html/upload_files/captcha下,不同容器间实现文件同步。这里需要注意的是我们在部署这些容器时,是相对于DockerFile的上下文的,在docker-compose中的nginx服务中如下配置。
2024-06-04 11:15:19
640
原创 VUE前端处理后端接口返回的图片
上传的文件保存在项目目录下的yourFiles目录下,部署以后,存放在容器的/app/yourFiles目录下。注意这里一定要新增 {responseType:'blob'}。
2024-06-01 13:30:13
1968
原创 解决Linux部署磁盘空间不足无法安装镜像问题
在执行清理命令之前,请确保我们了解这些命令的作用,并已经备份了重要的数据和配置。1、查看磁盘使用情况:df -h。2、删除系统缓存文件 /tmp。
2024-05-20 02:07:44
330
1
原创 记录windows连接JIRA的代码库bitbucket问题
由于本机在21年时链接过项目管理工具jira上的一个bitbucket库,且用自己的QQ邮箱生成了密匙,后面由于需要创建新的项目而废弃旧的项目,导致之前的库不用了,转而上传代码到新的库并部署自动化测试工具,再次生成密匙时导致无法连接bitbucket。下表显示了支持的密钥类型以及每种支持的密钥类型的最小密钥大小。这种东西很多年才连接一次,说实话完全不记得当时怎么通过SSH连接到项目库的,导致踩坑。如果第二步创建保存密匙的文件中添加了路径,此处也需要指向此文件。这些文件将存储在您的用户文件夹中,例如。
2024-05-07 00:29:46
1016
原创 基于Vue3+Element_plus完成明暗主题切换
3、在需要切换主题的组件中引入内置方法useToggle,引入dark.js文件中的isDarkd对象,并传入useToggle方法中,使用组件Switch开关绑定组件中的isDark属性,切换开关即可。2、静态文件assets中新增dark.js文件,调用内置方法useDark,导出isDark对象(当然,你也可以在组件中直接使用useDark,我这里是方便管理新增的一个文件)可以看到用到elementui的组件会随着主题自动切换字体和组件的颜色,其他的没有使用的组件的则是固定的,需要后期手动优化一下。
2024-04-16 21:28:29
1554
原创 记录基于python3.10-alpine镜像生成的容器无法使用reportlab和svglib将验证码接口返回的svg字符串转换为png格式的问题
之前写接口自动化时,reportlab+svglib可以将项目的验证码接口返回的svg格式的数据转换为png,再通过第三方接口识别,由于之前使用的python版本为3.8,而后面开发的接口自动化平台的版本为3.10,导致reportlab+svglib版本不兼容出现各种问题。由于使用的是python的alpine版本的镜像,没有apt包管理器,这里使用apk包管理器下载reportlab所需的必要依赖包pycairo,否则无法成功下载依赖包,reportlab库的方法就调用。
2024-02-27 12:05:49
582
原创 疑难杂症之生产环境pinia数据丢失
之前项目使用vuex进行全局的状态管理,这种方式是可行的,后面改用pinia以后,在开发环境没毛病,上线部署以后就出问题:页面刷新导致数据丢失。使用pinia推荐的插件又报错,因为我的全局状态中存在的类型有的是对象,而插件本身是使用Json.parse和Json.stringify进行类型转换,所以会报错。在开发环境的根组件App.vue中,定义组件对象创建以后的操作:将pinia的数据保存在浏览器的sessionStorage 中。
2023-10-24 17:47:11
796
原创 vue3 + elementUI 自定义表单校验规则与表头排序和筛选
功能需求,完成公司内部项目的用户模块的增删改查功能,并使用列表展示,可以进行数据筛选。1. 新建用户,用户名唯一;2. 分页筛选,可以根据用户名邮箱等查询;3. 表格数据筛选功能,根据表头的字段进行排序或者筛选。
2023-10-15 19:40:15
1875
原创 解决vue3中全局状态管理工具pinia持久化
导致这个错误的原因其实就是组件中数数据和本地存储中的对象发生了双向引用的情况,你引用我我引用你能不报错吗。解决办法:自定义监听事件:在App.vue中监听页面加载,如果页面有加载,就将当前的store对象序列化保存在本地存储中,当组件创建完成以后,再讲本地存储的数据反序列化保存到store中,原理上与插件相同,最近pinia上线在了vue的官方文档中替代了一起的vuex的位置,研究了一下,简直不要太pinia了,比vuex用法简单太多了。安装 npm install -S circular-json。
2023-08-18 18:42:56
569
原创 自主实现DDT用例参数化装饰器
目的:上面的步骤,由于这里是固定的写法:new_method_name = f'test_login_{index}',只能添加test_login方法,如果我还有其他的测试方法,如test_register等,如何根据测试数据动态的添加test_register_0、test_register_1、test_register_2、test_register_3方法?思路:定义一个类装饰器,返回类对象,遍历测试数据,根据已有的测试方法+用例下标命名,利用内置函数setattr给测试类添加方法。
2023-06-29 22:40:30
285
原创 可视化窗口选择pytest运行制定标记用例
接口自动化项目搭建好以后,有些童鞋不想每次都去更新主入口文件下的mark,或者说有些做功能的童鞋不懂得怎么更改mark来执行特定标记的用例(虽然说明文档已经很清楚)。在此特意写了一个小的窗口,让他们来点击选择自己想要运行的流程。将用户选择的mark作为变量,传入pytest运行参数中。效果展示:选择标记后,执行对应的测试脚本。
2023-06-15 14:25:00
299
原创 利用免费端口映射工具将jenkins提供给外网访问
项目需求,需要查看本地的jenkins配置,将接口自动化项目推到到jiar的bitbucket上网上查了很多资料,外网怎么访问本地的jenkins,基本没用!!一大堆jenkins设置、局域网设置等等,结果毫无卵用。
2023-05-27 02:05:37
1264
原创 python的hooks方法之pytest_collection_modifyitems
考虑到验证码不一定识别正确,这时候需要加上失败重跑机制,但是由于用例中的每个接口并不一定需要加上这个前置和后置,需要对收集的用例进行处理,自定义一个规则:当用例的title包含‘验证码时’,加上识别验证码的前置及后置,以及验证码识别失败导致的注册失败的重跑机制。完成IB/CL账号的注册-发送邮件-kyc接口自动化脚本:业务逻辑比较简单,涉及到三个接口:发送图片验证码,识别验证码,注册接口的请求体数据中添加进识别的验证码来完成注册。后置:删除前置设置的全局变量:验证码code、验证码id。
2023-04-28 19:08:25
585
原创 openpyxl:当excel有多个sheet表时如何保存多个表单的数据
以上方法在项目的大多数情况下都能写入数据并使脚本正常运行,但是在遇到一个excel中存在多个sheet表单时,每一个表单都作为一个实例对象,确实也可以读取每一个表单的数据。但是如果要修改每一个表单或者多个表单时,每一个实例对象仅仅能修改自己的表单,并不能再这个实例对象下修改别的表单,说白了就是如下代码并不能安装我的意愿修改我想要的表单数据:理论上来说,register_data这个实例对象在调用sava_excel_data方法时,保存了数据;同样是写入J2单元格的内容,只有后面这个对象成功保存了数据。
2023-04-25 21:17:17
1446
原创 python接口自动化踩坑小记
在我们用脚本发起接口请求时,除了会将鉴权加入headers中,有时候还需要加入User-Agent参数模拟浏览器请求,但是源站的请求需要我们提供“安全上下文”时,这些常规的headers参数并不能实现我们想要的操作,除非源站的信息敏感或不必要的。在项目中,如果我用接口请求一个渠道发起入金请求,请求headers中加入了鉴权和模拟浏览器行为,但是接口响应了一个这样的信息:{'code': 2001, 'message': 'DATA_WRITE_FAILED', 'data': '非法来源'}
2023-04-21 21:37:33
146
原创 selenium自动化踩坑日记:iframe切换
第一个iframe位于整个DOM树中的第二个(下标为1),要点击的目标元素所在的iframe位于第一个iframe里面的第一个iframe,这时候这个iframe的下标可不是相对于整个DOM树而言的2了,而是相对于整个DOM树的第二个iframe而言,那么他的下标就是0。
2023-04-19 23:38:42
501
原创 python之AES加密解密踩坑记录
plaintext = plaintext.replace(' ','').replace('\t','').replace('\n','').encode('utf-8') #去除所有空字符,换行符,缩进。可以看到两者的差别有多大,格式完全变了,而我们从excel读取出来的请求数据,一般都是字符串,如上的data变量,如果不对这些空格、换行符之类的进行处理,请求会失败。当我用加密及解密方法来对接口请求数据加密时,得到的加密结果与页面抓取的密文一致,但是在调试接口时发现密文却不一致。
2023-04-18 21:19:37
603
原创 Jenkins集成Pytest生成测试报告
由于公司项目集成在docker镜像上执行,报告发送teams通知,这里回忆一下之前用jenkins构建拉取代码及生成allure报告的job,顺便做个笔记,aluure及jenkins插件下载不赘述了,直接进入主题:新建一个freestyle的job,克隆远程仓库:克隆成功后:点击立即构建,试试能不能从远程拉取,拉取成功:由于我的脚本是在windows系统下执行构建步骤选择win的批处理命令:jdk配置:allure配置:job中allure配置:
2023-04-17 02:59:03
365
原创 接口自动化之接口测试用例设计
太长时间没有做接口自动化了,一直都在完善项目的UI自动化脚本,谨以此篇回顾一下接口自动化的一些小九九接口自动化的用例设计不同于功能测试用例,不需要具体的某某实现步骤,但是相对于功能来说,接口自动化用例设计逻辑更复杂,写死的规定比较多,主要是为了适应自己项目而编写的一套接口测试框架。
2023-04-17 01:26:37
444
原创 接口自动化之数据隔离
在我们用main文件执行所有用例时,配置文件中的配置是所有用例都会用到的数据,我们将配置文件中的配置信息作为Environment这个类的类属性,而每个执行用例的类中,我们引入一个实例对象,将每个执行用例类所产生的属性赋值给实例属性,这样每个用例类的实例属性都是不一样的。配置文件属性共享,用例属性不共享(类属性与实例属性)再将这个类实例化,每个执行用例的模块导入这个实例对象,即每个用例类都有一个初始化的实例对象(拥有配置文件中的所有配置信息)简单记录一下数据共享问题。
2023-04-16 19:13:11
337
原创 python基础数据类型
python中的数据类型主要分为数值类型;序列类型;散列类型目录数值类型:整数、浮点数、布尔值、复数序列类型:字符串、列表、元祖散列类型:字典、集合数值类型整数:正整数,负整数,包括0都属于整数数据类型,可用int(float)方法将浮点数改为整数类型浮点数:小数 可用float(int)方法将整数改为浮点数类型布尔值:只有True和Flase两个值复数:和数学中一样,由实部+虚部(j)组成序列类型 (序列类型都可用下标取值)字符串:str ,一般由单引号''..
2021-10-28 22:23:55
1232
原创 selenium自动化之文件上传
文件上传是web自动化中很常见的一个功能,一般分两个场景:1.input标签,type=file属性。此种可以直接用send_keys()方法上传文件图片等例如百度搜索页面的图片搜索功能:点击百度搜索框中的‘相机’按钮:这种的话直接send_keys就能直接上传本地图片了需上传的本地图片:代码:2.非input标签,可以借助autoit这个第三方工具来上传,下载地址:AutoIt Downloads - AutoIt下载zip文件后解压缩会..
2021-10-26 20:25:35
1474
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人