drf对返回数据进行修改的两种方法 1、场景:一个接口可以有多个测试用例。例如只输入字段A,只输入字段B等。但是我们需要知道这个接口有多少用例我们可以在view进行修改,返回数据在response.data['results']中,通过将testcase中的interface_id等于返回数据中的id,并计算数量,将该数量,返回item['testcases'] def list(self, request, *args, **kwargs): response = super().list(request, ..
jenkins执行python自动化测试用例 1、搭建完成jenkins后,创建项目,项目配置好svn地址,和邮箱地址。具体参考具体参考2、在编辑代码的机器中,使用cmd命令创建requirements,该文件将代码所需要的依赖库和版本导出到该文件,后续在jenkins中使用python虚拟环境进行安装。此方法的好处,避免每次都要手动使用pip install进行安装,同时每个项目运行环境,不一致,可能导致构建失败。具体步骤参考3、安装virtualenv,用来构建虚拟环境pip install virtualenv3、在构
drf中校验、以及校验的顺序 1、常用几种校验,在序列化器类中我们定义,并在在对应字段中添加,失败提示min_length=6, max_length=20,这样如果长度不在6到20 将提示错误。error_messages={ 'min_length': '仅允许6~20个字符的确认密码', 'max_length': '仅允许6~20个字符的确认密码', }这样填写错误时按照此处进行提示,。 password_confirm = serializers.CharField(label='确认密码', .
django中value和value_list的区别 django中value和value_list的区别我们使用Projects.objects.values()返回的是,查询集,查询集中是字典,所以可以使用Projects.objects.values().first()['name']获取name的值<QuerySet [{'id': 4, 'create_time': datetime.datetime(2021, 5, 7, 13, 33, 10, 747023, tzinfo=<UTC>), 'updat..
warpeer、tomcat、kafka使用jmx,连接JConsole、java visulavm,JAVA VISUALVM无法使用SERVICE:JMX:RMI:///JNDI/RMI:/// 1、修改本机hostname的IP使用hostname -i可以查看本机的IP(如果是127.0.0.1就需要修改),一般好多都配置为127.0.0.1或者::1使用服务器的IP地址进行替换(命令:vi /etc/hosts)查看主机iphostname -i修改IPvi /etc/hosts2、配置wrapper(和配置tomcat基本差不多,但是注意wrapper.java.additional.X 中的数字)wrapper.java.additional.3=-Dcom.s.
cpu负载高100%分析和定位 最近发现产品使用一段时间后,比较卡,需要10多s才可以访问。1、进入后天,top命令查看。发现负载很高。同时又4个python脚本,一直处于运行中。2、使用pidstat -wt 5 1可以看到python进行了多次非自愿切换。(指进程由于时间片已到等原因,被系统强制调度,进而发生的上下文切换。比如说,大量进程都在争抢 CPU 时,就容易发生非自愿上下文切换。)初始:可以看到并没有系统压力。id(空闲)为90多。在加压后,看到cs列等其实变化并不大。...
cpu负载理解 负载:系统负载,即任务队列的平均长度。 三个数值分别为1分钟、5分钟、15分钟前到现在的平均值。使用top命令后,在按1可以看到有几个cpu一般来讲,一个cpu的服务器,负载超过1(即图中红色框中超过1,即过载)4个cpu的服务器,负载为4,即过载,此处为3,负载为75%(处于正常范围。)如果超过4之后,可能造成系统访问卡顿等...
myql 慢查询定位和修改 1、修改my.cnf文件,后重启mysql在其中添加如下配置。第一行配置为开启慢查询、第二行为设置慢查询时间为1S。超过1S的都将被记录。第三行指定慢查询日志目录(目录根据自己项目进行修改)slow_query_log=ONlong_query_time=1slow_query_log_file=/common/mysql/log/db.slow2、进行压力测试。3、查看db.slow 查找慢查询语句4、可以看到只是进行了查询时间为1S(语句大致如下).(一般慢查询的原因是没有对对
关于webUI自动化的一些思考、建议 1、使用自动化测试用例命名进行文件顺序前后的调整。2,最好使用虚拟化python环境,因为不同的项目,使用python包不一致,导致后期难以维护,以及使用自动化集成时,包引用出现问题,不利于排查3、加入元素等待,因为环境等的差异,如果只是简单使用time.sleep(),部分元素在本地环境可能没有,在其他环境进行测试时,会出现各种元素不可定位(可以重新封装元素定位方法,在该方法内直接进行等待,后续直接调用时,等待每个元素可见,在执行步骤)4、firefox和chrome对前端界面的解释,不同..
selenium常见的元素定位方法、断言总结 建议关注下父子元素定位和elements复数定位史上最全!Selenium元素定位的30种方式https://blog.csdn.net/qq_32897143/article/details/80383502Python selenium —— 父子、兄弟、相邻节点定位方式详解https://blog.csdn.net/huilan_same/article/details/52541680...
selenium自动化测试中xpath定位传参 由于各种定制化的原因,导致自动化脚本出现问题,例如A版本有四个导航按钮,B版本有5个导航按钮,且新增的按钮在第一个,导致后续定位全部出错。我们可以使用参考此文章https://blog.csdn.net/qq_41529264/article/details/120159261,进行判定几个导航按钮。然后元素时,进行判定。方法一,使用join n=13 seq=["//div[@id='treemenu']/div/div[",str(n),"]"]
selenium自动化过程中遇到web系统有多个版本,每个版本有细微差别时, web自动化过程中,经常会用到,每个版本有细微的差别,例如,A版本有该文本框,B版本没有该文本框,导致用例失败,可以使用判定对应文本框和页面,是否存在(即返回True或者Flase)来进行区分。如图,调用该函数,当//input[@id='userForm.pin']存在时,返回True,填写该文本框。当为Flase时,不进行操作即可from selenium.webdriver.support.wait import WebDriverWaitfrom selenium.webd
cannot import name ‘PyKeyboard‘ from ‘pykeyboard‘ (D:\python\Scripts\uizdh\lib\site-packages\pykeybo python的windows虚拟环境的使用https://blog.csdn.net/qq_39241986/article/details/106654549 from pykeyboard import PyKeyboardImportError: cannot import name 'PyKeyboard' from 'pykeyboard' (D:\python\Scripts\uizdh\lib\site-packages\pykeyboard\__init__.py)报错,查看
selenium元素定位因为已有数据造成定位变化时的解决方法 当有多组元素,并且可能因为系统有残留数据,造成定位的改变。(一般为部门、资产等的新建,元素定位,在有数据和没有数据时,发生改变。)背景:当没有部门时,/td[@colspan='3']/table/tbody/tr/td[4]/span可以查找出两个元素,第二个为查找元素,当已存在一个部门时,该元素定位发生变化,可以查找到四个该元素,解决思路:获取存在该元素的列表长度,当大于3时,即代表至少存在一个部门。使用以下定位self.driver.find_elements_by_xpath(.
Message: Element <tr> could not be scrolled into view 自动化过程中报错,使用find_element_by_xpath()里使用对应xpath即可ActionChains(self.driver).click(self.driver.find_element_by_xpath().perform()https://blog.csdn.net/lizz2276/article/details/113585600