- 博客(629)
- 收藏
- 关注

原创 pycharm专业版使用
首先下载专业版pycharmpycharm下载地址:https://www.jetbrains.com/pycharm/1、傻瓜式安装: 下载完成后点击下一步——》选择软件安装目录——》勾选64位和.py——》 安装(Install)——》完成——》点击 Evaluate for free 免费试用,再点击 Evaluate2、a、将 BetterIntelliJ 压缩包拖入pycharm窗口中c、此时弹出提示框,点击 OK 按钮,之后手动关闭pycharm,再重启。d、重新打开
2021-07-27 10:04:01
8910
341
原创 平台登录页面实现(一)
* --------------------登录页面--------------------- *//* 修改element-plus 输入框表单的样式*//* 修改输入框图表样式 */main.js中导入,全局生效// 对登录的表单数据进行验证if(res){})},
2023-09-30 11:00:18
98
原创 Vue中父组件和子组件的关系
props:父组件在使用时给子组件中的属性传递的值;props:[‘cls’,‘stu1’]:表示父组件中定义的值传给子组件中的cls和stu1methods:{//触发组件的delete事件。
2023-09-27 13:28:32
60
原创 【vue】利用axios发送请求
保存到LocalStorage中:永久存储,只有不手动删除,永久保存到LocalStorage中。在main.js中导入index.js,作为全局对象,方便以后的开发项目中使用。保存到sessionStorage中:关闭浏览器之后,删除内容。在api/index.js中对axios对后端请求进行统一封装。请求失败时,控制台输出的对象。请求成功时,控制台输出的对象。保存登录返回的token。固定写法,复制粘贴即可。根组件App.vue。
2023-09-25 08:31:46
222
原创 docker容器服务器编排利器 Docker Compose应用实战
用容器运行一个服务,需要使用docker run命令。但如果我要运行多个服务呢?假设我要运行一个web服务,还要运行一个db服务,那么是用一个容器运行,还是用多个容器运行呢?一个容器运行多个服务会造成镜像的复杂度提高,docker倾向于一个容器运行一个应用。那么复杂的架构就会需要很多的容器,并且需要它们之间有关联(容器之间的依赖和连接)就更复杂了这个复杂的问题需要解决,这就涉及到了容器编排的问题了。
2023-09-22 09:28:17
260
原创 Docker容器数据持久化存储机制
物理机或虚拟机数据持久化存储由于物理机或虚拟机本身就拥有大容量的磁盘,所以可以直接把数据存储在物理机或虚拟机本地文件系统中,亦或者也可以通过使用额外的存储系统(NFS、GlusterFS、Ceph等)来完成数据持久化存储。Docker容器数据持久化存储由于Docker容器是由容器镜像生成的,所以一般容器镜像中包含什么文件或目录,在容器启动后,我们依旧可以看到相同的文件或目录。由于Docker容器属于"用后即焚”型计算资源,因此Docker容器不适合做数据持久化存储。
2023-09-19 09:39:52
73
原创 测试平台前端部署
将前后端打包文件拷贝到容器中的/usr/share/nginx/html/目录下。之前创建的nginx容器,没有前端数据映射。暴露80(后端访问)、81(前端访问)端口。制作nginx,Dockerfile。static:后端打包文件。nginx下的文件信息。dist:前端打包文件。
2023-09-15 09:42:24
196
原创 docker-compose部署测试平台
2、服务除了可以基于指定的镜像,还可以基于一份 Dockerfile,在使用 up 启动之时执行构建任务,这个构建标签就是 build,它可以指定 Dockerfile 所在文件夹的路径。2、例如在没启动数据库容器的时候启动了应用容器,这时候应用容器会因为找不到数据库而退出,为了避免这种情况我们需要加入一个标签,就是 depends_on,这个标签解决了容器的依赖、启动先后的问题。docker-compose可以通过脚本来批量构建镜像和启动容器,快速的部署项目。
2023-09-13 08:56:38
53
原创 测试平台部署三——Nginx
请求来了,首先会检查是不是静态文件,如果是静态文件就加载静态文件,如果不是静态文件,反向代理到 location @proxy_to_app块中,转交给http://ck14_django:8000。客户端发送请求http://82.156.178.247:5001/,到云服务器,宿主机和nginx容器映射,转发给nginx中的80端口,进行路由匹配,匹配到 location /块中。添加到root中,路径变为 /usr/share/nginx/html/static/
2023-09-12 11:04:28
163
1
原创 测试平台项目部署二(手动部署改成Dockerfile)
解决:将supervisord.conf文件中的user改为root,重新创建容器。安装pyyaml时,我把。–no-cache:不加缓冲。
2023-09-11 09:07:16
201
原创 测试平台项目部署一(手动部署)
(2)通过git stash 将工作区恢复到上次提交到内容,同时备份到本地所做到修改,之后就可以正常git pull了,git pull完成后,执行git bash pop将之前本地做的修改应用到当前工作区。git stash pop从git栈中读取最近一次保存的内容,恢复工作区的相关内容。由于可能存在多个stash的内容,所以用栈来管理,pop会从最近的一个stash中读取内容并恢复。git stash 备份当前的工作内容区的内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。
2023-09-08 09:45:41
349
1
原创 移动端App持续集成体系构建实战
在持续迭代开发中,开发写代码,将新的功能加入到app中,这样需要测试新的功能。我们需要一个新的可以测试的app包,进行测试。用自动化构建,最好是能完成一些基础功能的测试(回归测试,保证新的迭代不影响旧的功能),基础功能测试通过后,说明这个测试包可以用,接下来可以测试新的功能。在传统的测试中,往往UI自动化测试要滞后于手工测试,UI自动化测试验证的功能往往是已有的功能。现有的自动化体系中,UI自动化测试往往测试的是回归的功能,已有的功能。
2023-09-05 07:50:24
151
原创 测试左移——代码审计SonarQube 平台搭建
可靠性 bugs可维护性 code smells安全性 Vulnerabilities Security Hotspots覆盖率 Coverage Unit Tests代码重复 Duplications代码规模 Lines of Code Comments rate复杂度 Cyclomatic Complexity Cognitive Complexity。
2023-08-31 00:07:49
166
原创 Docker部署UI自动化测试环境
selenium grid是selenium的三大组件之一,它的作用就是分布式测试执行,它是由一个hub节点和若干个node代理节点组成,Hub用来管理各个代理节点的注册信息和状态信息,并且接受远程客户端代码的请求调用,然后把请求的命令转发给代理节点来执行。利用容器技术我们可以快速的构建我们selenium hub和node 环境,其实selenium官网已经为我们制作好了镜像,我们只需要在docker环境中拉取即可,以下为selenium官网为我们提供的镜像名称。2、减少对单机器的资源消耗。
2023-08-29 08:17:37
98
原创 基于加密接口的测试用例设计
1、对响应加密的接口。对它发起一个get请求后,得到一个加密过后的响应信息。(如果有可用的加密过的接口以及了解它的解密方法,可以跳过)3、如果既不是通用加密算法、研发也无法提供加解密的lib的话,可以让加密方提供远程解析服务,这样算法仍然是保密的。1、调用python自带的base64,直接对返回的响应做解密,即可得到解密后的响应。2、如果不了解对应的加密算法的话,可以让研发提供加解密的lib。1、如果知道使用的是哪个通用加密算法的话,可以自行解决。2、封装对于不同算法的处理方法。2、准备一个加密文件。
2023-08-28 08:19:36
81
原创 【效能平台】django项目中集成httprunner做接口测试补(五)
env文件api/login_api_2.yml文件让User-Agent动态变化,需要在项目根路径下的debugtalk.py文件中定义函数或者类,用于处理动态变化的参数,使用${函数名(参数1,参数2,......)}variables:#指定base_urlrequest:#如果在全局指定了base_url,会自动拼接urlheaders:json:params:p: 1s: 2validate:定义测试逻辑,先执行登录接口;
2023-08-27 11:46:15
96
原创 测试平台——异步执行任务
Celery是使用python编写的分布式任务调度框架。要在你的django项目中使用celery,首先需要定义一个Celery的实例。如果你有django项目如下:proj/manage.pyproj/urls.py那么推荐的方法是创建一个新的模块来定义芹菜实例:import os# 设置django的配置环境# 实例化celery# 为当前celery应用配置来源# 就可以在django的配置文件中配置celery的配置,只用在CELERY的前缀。
2023-08-21 09:37:20
82
原创 Python项目中怎么实现异步任务和定时任务
Celery是由Python开发、简单、灵活、可靠的分布式任务队列是一个处理异步任务的框架其本质是生产者消费者模型,生产者发送任务到消息队列,消费者负责处理任务。Celery侧重于实时操作,但对调度支持也很好,其每天可以处理数以百万计的任务。include:手动加载任务,然或报错,KeyError: ‘task02.write_log’如果任务定义在其他的py文件中,需要将任务(write_log)添加到include列表中;send和app对象在同一个py文件中,不用添加到include。
2023-08-16 13:27:35
72
原创 测试平台——bug模块开发
方法1:bug表与接口表的关系为多对一,bug中获取接口的url需要用关联关系字段interface。mixins类中的create方法和update方法不满足需求,需要重写这两个方法。问题:为什么self.request.user.username是空的?提交bug需要传入提交bug者,并且增加bug操作记录。原因是前端代码写的是bearer token。获取当前项目下的bug列表数据。获取当前项目下的所有的运行记录。获取测试计划下所有的运行记录。获取某条运行记录的详细信息。获取运行记录下的报告信息。
2023-08-14 08:27:03
84
原创 测试平台——报告模块、记录模块开发
特别注意:用例运行记录表与测试计划表的关系为多对一,用例运行记录表与项目没有直接的关联关系,但是可以通过测试计划表进行关联:plan__project。所以通过项目去查询测试记录:filterset_fields = [‘plan’,‘plan__project’]特别注意:用例记录只有在执行测试计划才会生成。特别注意:测试报告只有在执行测试计划才会生成。创建报告需要info和record两个字段。用例记录只有在执行测试计划才会生成。获取测试计划下的用例记录。获取项目下的用例记录。
2023-08-11 13:33:29
74
原创 测试平台——测试执行
1、获取测试数据2、检查env参数3、执行测试(run_case()方法封装在task.py文件)4、返回结果本项目中,测试的执行分三种:1.测试用例执行2.测试场景执行3.测试计划执行测试任务的执行逻辑为:当要执行某个测试任务时,需要提供测试环境,测试版本,测试参数,测试员,然后后端会根据对应的数据关系,去数据库中查询所有用例,组织成测试数据交给easytest去执行,然后把生成的结果写到数据库。
2023-08-09 23:22:27
94
原创 测试平台——测试计划应用模块
当一个视图集中有不同的方法需要使用不同的序列化器时,需要重写get_serializer_class()方法;当一个视图集中有不同的方法需要使用不同的查询集时,需要重写get_queryset()方法;包含信息:用例名称、所属接口、请求头、请求体、上传的文件参数、前置脚本、后置脚本。通过action装饰器,装饰其他的方法后,可以将其他的方法增加为当前视图集的接口。d、action的第一个参数是一个列表,表示这个接口需要响应的http请求的方法。当获取用例的详情数据时,需要获取当前用例的所属接口信息。
2023-08-07 08:13:16
64
原创 测试平台——项目模块模型类设计
不需要在复写get_queryset方法手动过滤,就可以通过url/test_envs/?project=1访问过滤数据了。在后端类视图或者视图集中添加filterset_fields属性即可实现指定字段过滤,例如改写环境管理视图集。除了能够覆盖默认查询集之外,REST 框架还包括对通用过滤后端的支持,允许您轻松构建复杂的搜索和过滤器。注意:当使用外键字段过滤时,如果级联模式是删除,则使用不存在的数据过滤会返回400响应。可以使用设置全局设置默认过滤器后端DEFAULT_FILTER_BACKENDS。
2023-08-05 17:13:51
679
原创 测试平台——用户模块开发
Django认证系统提供了用户模型类User,具体位置:django.contrib.auth.models.User;因为Django认证系统提供的用户模型类User中缺少我本次项目中需要的字段,需要重写定义User模型类,最好不要和User重名,我以UserModel命令自定义的User需要继承AbstractUser,同时还需要继承BaseModelmobile代码如下。
2023-08-04 09:11:28
92
原创 测试平台——项目工程创建和配置
原因:原BASE_DIR指向D:\django_project\ck14_platform\ck14_platform。现BASE_DIR:指向D:\django_project\ck14_platform。建立代码仓库时,生成的忽略文件(.gitignore)中已经默认忽略掉了*.log。开发过程中,产生的日志信息不需要代码仓库进行管理和记录。修改BASE_DIR:拼接.parent。项目的环境分为开发环境和生产环境。开发环境:用于编写和调试项目代码。生产环境:用于项目线上部署运行。
2023-07-31 09:43:07
139
原创 使用Jenkinsfile实现接口自动化测试持续集成
pipeline简单来说就是一套运行在Jenkins上的工作流框架,将原来独立运行于单个或者多个接点的任物连接起来,实现单个任务难以完成的复杂流程编排和可视化的工作。
2023-07-25 07:29:32
89
原创 使用Jenkins自由风格的软件项目实现接口自动化测试持续集成
将参数"${JOB_BASE_NAME}"传递到send_ding.py文件中。JOB_BASE_NAME:表示job名称。send_ding.py中需要用sys.argv[1]去接收,当job构建完成后,执行构建后操作,生成测试报告和发送钉钉通知。: ${methods}获取参数化构建过程中传递的参数,默认为testcases。轮询SCM:当远程仓库中的代码发生变化时,会自动执行自动化代码。定时构建:根据设置的定时时间,自动执行定时任务。c、workspace:job名称即是项目名称。
2023-07-19 13:17:23
357
原创 django开发中遇到的问题总结
1、查a、获取测试计划下的所有测试用例?plan_obj.testcases.all()b、获取测试用例所在的测试计划有哪些?testcase_obj.planmodel_set.all()2、增3、改4、删删除:清空:二、迁移生成数据库表?当数据库脚本生成和迁移操作时,如果数据库中没有生成对应的表,首先需要检查模型类设计是否正确;接着将迁移脚本都删除,同时将数据库中的表也删除重新执行迁移脚本(文件不要删)to_internal_value():反序列化输入最开始校验的方法
2023-07-11 10:14:43
185
原创 性能测试的基本概念和重要指标
性能测试就是测试软件性能方面的质量,它是一种非功能性的测试,它是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。
2023-07-10 08:45:13
119
原创 JMeter参数化(6)
全局生效,可以跨线程组使用整个界面配置和测试计划中的用户定义的变量一样,区别是可以挪动它的位置第一步:实现msb搜索接口第二步:在msb搜索接口的子集中,添加用户自定义的变量第三步:新增一个线程,在新增的线程中添加调试取样器第四步:运行,查看结果如果用户定义的变量组件放在取样器的子集中,那么它也会最先运行它不会受到作用域的影响,它是全局生效的JDBC配置环境配置注册/登录用户配置其他配置通过用户定义的变量,让配置变得层次清晰。
2023-07-07 00:20:11
97
原创 JMeter常用业务知识和组件(5)
这么配置后,HTTP请求中,请求头的Content-Type的值是application/json。Cooke管理器:是JMeter用来管理Cookie的组件,使用Cookie管理器。添加方法:对HTTP请求右键->添加->配置元件->HTTP信息头管理器。添加方式:线程组右键->添加->配置元件->HTTP Cookie管理器。添加方法:线程组右键->添加->配置元件->HTTP请求默认值。自动管理的含义:自动保存服务器返回的Cookie,并在自动把。可以使用Cookie管理器手动管理静态Cookie。
2023-07-05 10:34:05
509
原创 Jenkins用户权限设置和运行节点配置实战
Host Key Verification Strategy:主机密钥验证策略,如果是SSH用户密码的凭证进行连接的话,选择“Non verifying Verification Strategy”策略,如果是密钥的方式,则选择"Known hosts file Verification Strategy“策略。SSH连接方式,是主节点通过配置的ssh信息(凭证等),通过ssh登录的方式登录到子节点,是主节点主动连接子节点。Jenkins节点启动方式默认支持agent代理方式的,如果想要支持SSH,则。
2023-07-03 08:23:10
1716
3
原创 JMeter变量和和属性(4)
用户自定义的变量用户参数CSV配置元件JMeter函数BeanShella、在配置文件中定义:JMeter属性默认读取的就是jmeter.properties中的属性配置配置文件定义属性后,需要重启JMeter才会生效b、在JMeter运行过程中,通过JMeter函数${__setProperty(属性名,属性值,)}来定义。
2023-06-30 07:35:50
577
1
原创 JMeter三大重要组件——线程组、取样器、查看结果数(3)
例如:如果设置线程数为3,Ramp-UP时间为30,那么理论上启动3个线程需要消耗30秒。其中:第0秒启动第1个,第10秒启动第2个,第20秒启动第3个,间隔时间为30S/3个=10S/个,而是否停止还会受到线程的控制。启动下一进程循环: 当线程组中,有循环次数时,循环体中的取样器如果有任何一个报错,那么终止当前循环,进入下一个循环,相当于continue。线程数: 执行当前线程组下的业务脚本时,需要启动的线程数。停止线程: 当取样器出现错误后,运行取样器的当前线程停止,其他线程不受影响。
2023-06-26 08:47:35
307
24
原创 JMeter作用域和运行顺序(2)
eg:当定时器放在控制器下面,只对控制器下面的取样器生效,HTTP请求1和HTTP请求2瞬间执行,HTTP请求3和HTTP请求4取样器会等待3s执行。父节点是控制器的定时器只对控制器下的所有取样器生效,控制器下的HTTP请求都要等3秒才能发请求。(4)测试计划作用域 父节点为测试计划的组件具有的作用域,对测试计划下的所有取样器起作用。(3)线程组作用域 父节点为线程组的组件具有的作用域,对该线程组下的所有取样器起作用;eg:当定时器放在线程组下面,对所有的取样器生效,所有的取样器都会等待3s。
2023-06-25 12:47:34
1295
原创 Jmeter核心结构和运行原理(1)
测试计划线程组配置元件前置处理器取样器定时器后置处理器断言监听器逻辑控制器测试计划:如果把JMeter的结构看成一棵树,测试计划就是树的根,所有JMeter脚本都在测试计划下去运行线程组:线程组是任何一个测试计划的开始点。在一个测试计划中的所有元件都必须在某个线程组下。所有的任务都是基于线程组。因为JMeter是基于线程去运行请求的配置元件:配置元件提供对静态数据的支持。如:数据库配置、JMeter变量定义、读取外部数据文件的配置等等前置处理器:执行JMeter取样器之前,会被运行的元件;
2023-06-24 14:23:45
575
原创 jenkins——Git版本管理
在 Jenkins 上构建从 Git 源码仓库拉取代码的任务时需要使用到 Git 插件。我在创建jenkins流水线任务的时候,按照下图进行选择,但是出现了错误。
2023-06-19 20:43:18
1074
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人