- 博客(28)
- 收藏
- 关注
原创 pytest测试框架
pytest一、安装pip install pytest安装完成之后查看版本pytest --verson【注】如果因为pip不是最新的安装失败,可以移步ModuleNotFoundError: No module named ‘pip‘二、使用规则要想pytest在不同函数或者包中发现测试用例,需要按照下述规则来定义文件名、类名或者函数名:文件名以test_开头的py文件 ;以test_开头的函数 ;以Test开头的类;三、示例# 文件名为 test_firstcase.py
2021-02-24 16:31:36 2633
原创 python 字典初始化方法 全!!!
python 中字典还是比较常用的,可惜自己一直记不住,好记性不如烂笔头这话说的一点没错方法一:(这个是比较常见的)d1 = {'x': 1, 'y': 2}print(d1['x'])>>> 1当然也有这种特别好理解,但是写起来不那么.......友好的d1' = {}d1'[k1] = v1d1'[k2] = v2.......方法...
2019-09-02 18:32:21 81508 2
原创 MAC 无法访问mysql下的data目录 (已解决)
1、找到文件目录使用如下命令,可查看创建的表保存在什么路径SHOW VARIABLES LIKE 'datadir';2、打开文件按键快捷键command+shift+G,就会出现一个弹框,将上述查询到的msql的地址输入进去,然后就进去到mysql的安装目录3、点击’Data’文件提示已经说明,没有权限,所以需修改该文件操作权限4、修改Data文件权限打开终端,输入sudo chmod -R a+rwx /usr/local/mysql/data,然后输入电脑密码即可【注意】不
2021-10-17 22:17:34 3372 1
原创 python + Selenium+webdriver实现UI自动化(含示例)
一、原理Selenium 是一个 Web 应用的自动化框架。通过它,我们可以写出自动化程序,像人一样在浏览器里操作web界面。 比如点击界面按钮,在文本框中输入文字 等操作,而且还能从web界面获取信息。Selenium 的自动化原理如图所示:从上图可以看出:编写的自动化程序 需要使用 客户端库,程序的自动化请求都是通过这个库里面的编程接口发送给浏览器。比如,要模拟用户点击界面按钮, 自动化程序里面就应该 调用客户端库相应的函数, 就会发送 点击元素 的请求给 下方的 浏览器驱动。 然后,浏览器
2021-09-23 21:58:13 11394
原创 PyQt5 界面美化之 一键换风格(再也不用一个个调颜色啦~)
1、依赖模块pip3 install QCandyUi2、使用方法仅需在需要美化的窗口类上加上@colorful装饰器即可也可以调用CandyWindow.creatWindow()返回经美化的QWidget (推荐用这种)3、示例化妆前class MainWindow(QMainWindow, Ui_MainWindow): ....... if __name__ == '__main__': app = QApplication(sys.argv)
2021-09-23 21:09:45 20673 20
转载 re.compile()示例
re 模块提供了不少有用的函数,用以匹配字符串,比如:compile 函数match 函数search 函数findall 函数finditer 函数split 函数sub 函数subn 函数re 模块的一般使用步骤如下:使用 compile 函数将正则表达式的字符串形式编译为一个 Pattern 对象通过 Pattern 对象提供的一系列方法对文本进行匹配查找,获得匹配结果(一个 Match 对象)最后使用 Match 对象提供的属性和方法获得信息,根据需要进行其他的操作co
2021-09-23 20:57:33 574
原创 mac 下 selenium无法启动浏览器(chromedriver)
chromedriver 下载地址看网上有人说将 chromedriver 放置到:/usr/local/bin/打开Mac终端terminal : 进入 chromedirve文件所在目录,输入命令:`sudo mv /…/chromedriver /usr/local/bin/如图:/usr/bin/目录有很强的权限限制,所以放到/usr/local/bin/目录下,可以正常生效But,并么有用下面这个办法亲测有用:同上,将chromedriver移动到下面目录,然后执行cd
2021-08-08 13:23:57 1453
原创 MAC下配置ADB环境~简单粗暴!!!
1、安装homebrew(一般都会有,有的话直接跳过)打开终端,输入以下指令:ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”2、安装adb工具brew cask install android-platform-tools3、测试adb环境是否安装成功adb version# 或者直接adb比之前搜到的一大堆配置.bash_profile文件好用多
2021-06-20 14:24:35 876 1
原创 mac 虚拟环境创建第一个PyQt5项目
文章目录环境配置第一个示例解决运行代码不显示的问题环境配置1、打开pycharm,新建一个虚拟环境的项目之所以选择虚拟环境,是可以创建一个干净的python环境,可随时删除任一创建的python环境,且不会影响到主机的python环境。所以,下面配置的路径有所不同;2、安装pyqt5打开终端,执行pip3 install pyqt5,如图所示安装成功执行pip3 install pyqt5-tools,就为了这个兄弟designer.exe(使用他,搭建UI界面很方便~)3、配置新版的
2021-06-20 14:10:19 387
原创 python3: “Non-UTF-8 code starting with ‘\xe7 “报错
Python3中出现Non-UTF-8 code starting with '\xe7’的错误好吧,总是忘记,写个两行的博客记一下噻~Python3默认使用utf-8的编码格式,如果出现**Non-UTF-8 code starting with ‘\xe7’**的错误,可以在程序的最顶部加上 # -- coding:utf-8 --即可。...
2021-06-16 18:02:38 1171
原创 Pytest 之 fixture
fixture作为参数传入定义fixture跟定义普通函数唯一区别就是在函数上加个装饰器**@pytest.fixture()**,fixture命名不要用test开头,跟用例区分开,用例才是以test开头的命名;fixture是可以有返回值的,如果没有 return 默认返回None。用例调用 fixture 的返回值,直接就是把 fixture 的函数名称当成变量名称代码示例:# test_fixture.pyfrom operator import addimport pytest
2021-03-05 16:08:35 134
原创 allure报错:‘allure‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件(已解决)
问题:allure报错:‘allure’ 不是内部或外部命令,也不是可运行的程序 或批处理文件原因是本地忘记配置环境变量了~~~~~原地炸裂下载地址:allure官网环境准备在终端运行java、javac这些命令都没有问题,要不安装allure时会报错;安装&环境变量配置1、找到并进入bin文件运行 allure.bat,会弹出一个黑框一闪而过(闪的太快,没有截到图~~)2、复制bin文件所在路径此电脑 —>右键属性—>高级系统设置一路确定即可~然后满心欢喜
2021-03-04 16:43:02 6154 2
原创 pytest测试框架(二)
前提声明:在pytest框架中,有如下约束: 所有的文件名都需要满足test_.py格式或_test.py格式; 在文件中,测试类以Test开头,并且不能带有init 方法(注意:定义class时,需要以T开头,不然pytest是不会去运行该class的) 在类中,可以包含一个或多个test_开头的函数。此时,在执行pytest命令时,会自动从当前目录及子目录中寻找符合上述约束的测试函数来执行。1、安装插件pytest有很多强大的插件,例如:pytest-html 生成html测试报告
2021-03-03 18:56:41 314
原创 Airtest 之 poco 避坑大法
一、渲染树未出现使用OPPO 手机,发现渲染树始终出不来,始终只有"UI渲染树“ 这几个大字,而且一直报错,如下图所示:解决办法:进入手机 “开发者选项”–>"禁止权限开关”,打开它即可二、NameError: name 'poco ’ is not defined有些手机在poco窗口选择“Android",会出现一行提示,如图所示,选择”yes",这时候代码里会自动添加一行代码,如果没有添加成功,运行会出现“name ‘poco’ is not define",这时手动将代码添加进入即
2021-03-03 10:42:37 5339 3
原创 Pytest之paramtrize参数化
paramtrize 参数化:众所周知,测试用例需要尽可能多的(有代表性)的测试数据,在pytest中,我们可以往test数组中添加很多同样格式的测试数据,这个过程就是所谓的参数化。参数化即对同一个接口,使用多种不同的输入对其进行测试,以验证每一组输入的参数是否都可以得到预期的结果。Pytest提供了pytest.mark.paramtrize这种方式来进行参数化一、参数说明@pytest.mak.paramtrize(argsnames, argsvalues, ids=None) 如上所示是
2021-03-01 17:05:24 554 10
原创 ModuleNotFoundError: No module named ‘pip‘
pip安装一个包,结果提示需要升级pip按照提示输入命令升级pip,报错,导致pip找不到~~~~解决办法:python -m ensurepippython -m pip install --upgrade pip依次执行以上命令即可~
2021-02-24 11:06:02 138
原创 Airtest 环境搭建之JDK1.8下载安装&配置&完全卸载
前提条件:Airtest IDE:编写测试脚本,可进行录制修改调试运行脚本;Aietest下载 python:拓展高级功能,需要配置python环境;python 下载 parcharm:parcharm下载 Android SDK :提供了Android API 库和开发工具用于构建 测试 调试安卓应用程序;安卓SDK JDK:AirtestIDE本身一部分是用JAVA开发的,所以需要JDK;JDK8下载为什么单独写JDK的配置呢?因为我第一次安装的时候改了默认位置,按照网上的教程配置...
2020-12-17 16:52:45 1218
原创 数据库(sql )面试题
面试题主要是是为了体现各种语法,所以一个题目会对应多个解,小伙伴们有其他想法的欢迎补充~1、查询所有课程成绩大于80分的学生姓名(不需要输出成绩,这里只是为了直观展示)解法一:【注意】huaving 是对分组的结果集进行筛选;mysql> select sname,min(score) from student group by sname having min(scor...
2020-05-04 20:32:49 303
原创 DNS 解析-分布式层次结构&迭代递归查询示例
DNS:Domain Name System(域名系统)1、存在的意义(即解决什么问题?)简而言之:解决互联网上主机或者路由的识别问题 在互联网上有多达到上亿的设备,而这些设备之间互相联通网络,每一台主机都需要一个唯一的标识符(就像是我们每个人都有一张身份证),而这个标识符就是IP地址,由于IP地址是数字,不利于我们人来使用,所以我们日常生活中使用的是域名,比如www.b...
2020-04-20 21:58:32 1310
原创 Mac OS zsh: command not found: mysql解决方案 && 基本操作
一、安装1、去官网上找到dmg版本下载,傻瓜式安装完成, 注意安装到最后一步,设置密码;2、点击苹果标志->系统偏好设置->找到mysql 图标->双击->点击"Start MySQL Server"->MySQL启动成功;便于以后使用设置密码:系统偏好设置 -> MySQL -> Initialize Database -> 设置密码...
2020-04-09 23:14:04 3982 3
原创 计网面试之TCP & UDP
1、TCP和UDP的区别TCP是面向连接的,UDP是面向无连接的TCP能够提供可靠地数据传输,无差错,不丢失,不重复,且按序到达;UDP是尽最大努力交付,不保证可靠交付;TCP的传输效率相对较低,UDP传输效率高,适用于对高速传输和实时性有较高的通信或者广播通信TCP是面向字节流的,UDP是基于数据报的2、UDP的特点:UDP就像是一个小孩子,特别简单:沟通简单,不需要...
2020-04-07 12:56:04 209
原创 面试之三次握手,四次挥手
1、为什么建立连接的时候是三次握手,关闭的时候是四次握手? 当Server 端收到Client 端的SYN 连接请求后,可以直接发送SYN+ACK报文,其中ACK是用来应答的,SYN是用来同步序列号的,但是关闭连接的时候,当Server 端收到FIN报文时,并不会立刻关闭Socket,所以只能先回复客户端一个ACK报文,告诉客户端:“HI,你发的FIN报文我收到了”,等到我服务器端所有...
2020-04-06 22:31:10 143
原创 python (冒泡、选择、插入、快速)排序算法详解 !!!
1、冒泡排序思路:每相邻的两个数进行比较,如果前边的比后边的数大,则交换这两个数,重复操作,这样的话每一趟会确定一个最大值,用老师的话说是让轻的飘起来,重的落下去.......所以,这个算法的关键点就是【趟】如下代码所示,冒泡排序的时间复杂度为O(n2)def bubble_sort(L): #确定排序的趟数 for i in range(len(L)-1): ...
2019-11-08 17:41:12 206
原创 python 题解无重复的最长子串
给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。示例1:输入: "abcabcbb"输出: 3解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。一开始拿到这个题目,很开心,简单啊,直接新建一个列表,每读一个字母加到新列表里(如果列表里...
2019-11-04 10:58:35 548
原创 python3 图解反转列表 !!!绝对好理解
反转列表用python写的话很简单,但是总感觉不是很好理解,画图来一遍,加深理解 ~(小菜鸟的悲伤)示例:输入: 1->2->3->4->NULL输出: 4->3->2->1->NULL(ps: 画图技术不行,将就看看,不要嫌弃我呀~)初始链表长这样:先定义一个空指针pre = None,干嘛呢?对,没错,就是让他记住...
2019-10-29 17:26:04 232 2
原创 python3 题解删除列表倒数第N个节点
删除链表的倒数第N个节点,上数据结构课的时候老师讲了一个比较巧妙的方法,快慢指针,即定义快慢两个指针,快指针先走N步(N为要删除的倒数第N个元素的N),然后快慢指针一起走,他两之间的距离始终保持N,这样的话当快指针走到末尾的时候,慢指针所在的位置即为要删除的节点的位置,很巧妙吧?如果没看懂,没关系,简单说,这个N就相当于一把尺子,尺子的两端一个快指针一个慢指针,自己看看,很好理解吧?好了,说完...
2019-10-29 16:28:51 916
原创 K8S 的基本结构 ----图文好理解!
之所以想写这篇文章除了帮助自己理解,更多是因为听学长说,Kubernetes之所以被称为k8s是因为中间有8个字母,程序员们真是太有意思啦~是不是很有趣~好了,话不多说,learning~k8s集群主要由Master节点和Node节点组成,Master是主节点(一个),负责管理和控制;Node是计算节点(一群),即工作负载节点,里面是具体的容器;这样看是不是有个初步的印象啦~那我...
2019-09-04 16:49:13 4186
原创 基于win10的VirtualBox + Ubuntu server 安装教程
一、安装链接VirtualBox:https://www.virtualbox.org/Ubuntu:http://mirrors.ustc.edu.cn/ubuntu-releases/18.04/二、VirtualBox安装基本是傻瓜式操作,简单概述1、打开安装文件,双击,下一步2、选择是否更改安装位置,下一步3、默认勾选所有,下一步4、弹出警告,不用管,点击“...
2019-07-21 22:43:17 575
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人