python
HuiTest
会测试,爱测试,想测试
展开
-
自动检查系统所有菜单
1、背景 系统上线就怕个别网页打不开,或者配置错误,报404,所以上线后需要经常检查所有菜单页显示是否正常,手动检查时可以很好解决,但是速度慢,而且比较无聊,一次发版本次数较多,就显得更无聊,有什么好的办法可以解决这个问题2、思路 利用ui自动化,ddt这些解决方案就可以很好的解决这个问题,首先自己或者通过开发将所有得菜单拿到,我是自己通过页面UI抓取得系统设置中得所有菜单,也可以通过数据库直接将所有菜单名及url导出进行后续操作,拿到后就需要将所有页面打开,然后断言就可以了...原创 2020-07-23 11:16:15 · 2716 阅读 · 0 评论 -
每天定时发送邮件提醒
背景: 1、每天需要定时干一件事情,第二天比前一天早10分钟提醒思路: 1、写个程序,放服务器定时执行去提醒,但是linux服务器得定时任务都是同一个时间,没办法,怎么做,想过将第一次执行得时间记录到配置文件,时时去刷新读取配置文件,然后还需要将配置文件放redis中,越想越复杂,部署起来比我代码还多,最终想起来了等待,循环执行,然后第一次执行完后,等待24小时-10分钟即可,也就是86400-600 就行,说干就干循环100次,每次执行是前一天得时间-10分钟就可...原创 2020-07-23 10:45:57 · 3745 阅读 · 0 评论 -
定位隐藏元素与不可见元素
做自动化经常碰见元素属性有stype='hidden' 或者display=nono的 这种元素在页面不显示,但是元素可以找到,定位到,就是元素不能操作,如对元素进行点击,输入,清空等,报element is not enable等只要存在于dom文件中,也就是html中的元素都可以定位到,也可以利用find_element方法找到元素,就是元素不能进行任何操作...原创 2019-10-21 11:45:51 · 6954 阅读 · 0 评论 -
pycharm自动补全变量类别
原创 2019-10-14 09:32:00 · 4552 阅读 · 0 评论 -
python与selenium使用chrome浏览器 在函数内调用该函数,执行完成后浏览器会自动关闭
1.使用线性脚本执行没有任何问题2.将同样的代码写在方法内,调用该方法,程序执行完成后浏览器会自动关闭a,这样写,浏览器不会关闭b,这样写,浏览器会关闭c,这样写,程序执行完了,但是浏览器未关闭因为是在函数内执行的浏览器操作,在函数执行完毕之后,程序内所有的步骤都结束了,关于这段程序的进程也就结束了,浏览器包含在内;如果将浏览器全局后,打开浏览器不在函数内部,函...原创 2019-07-26 16:33:12 · 10517 阅读 · 3 评论 -
selenium chromedriver与chrome版本对应表(更新至v2.41)
最近在做Java Selenium爬虫相关项目,看到网上基本没有最新的chromedriver与chrome的对应关系表...转载 2019-07-25 10:52:51 · 7734 阅读 · 0 评论 -
selenium中隐藏元素定位
前言面试题:selenium中隐藏元素如何定位?这个是很多面试官喜欢问的一个题,如果单纯的定位的话,隐藏元素和普通不隐藏元素定位没啥区别,用正常定位方法就行了 但是吧~~~很多面试官自己都搞不清楚啥叫定位,啥叫操作元素(如click,clear,send_keys)隐藏元素如下图有个输入框和一个登录的按钮,本来是显示的元素的属性隐藏和显示,主要是 type="hidden"和s...转载 2019-07-24 15:01:57 · 9893 阅读 · 1 评论 -
自动化测试注意点
1、web自动化selenium测试的过程中,浏览器和driver的匹配至关重要。 如果在浏览器启动时就报一些看不懂的异常,多半是driver和浏览器版本不匹配,这时,先确认和更换driver版本。2、访问的页面过慢怎么办? 因为driver打开的浏览器不会使用自己本地的用户设置和缓存。 解决方案:让driver调用自己的本地用户文件。 1、找到...原创 2019-07-24 11:41:24 · 6513 阅读 · 0 评论 -
利用网址生成二维码
最近做一个东西,需要支持支付宝或者微信支付,然后调用接口返回,将返回的链接用草料二维码生成二维码,然后用手机去扫,特别麻烦,今天看到,然后将其生成的url直接生成一个二维码,存在当前的文件夹下面,直接用手机扫,方便了好多...原创 2019-07-18 17:23:52 · 6176 阅读 · 0 评论 -
利用python进行企业微信机器人自动发送消息
def test_004_robot(self): headers = {"Content-Type": "text/plain"} s="卖品,打印码:{},验证码{}".format({str(printCode)},{str(verifyCode)}) data = { "msgtype": "text", "text": { "...原创 2019-06-18 19:23:43 · 40621 阅读 · 12 评论 -
python md5
def md5value(s): md5 = hashlib.md5() md5.update(s.encode("utf8")) return md5.hexdigest()原创 2019-06-18 19:15:02 · 5334 阅读 · 0 评论 -
python 循环执行某一方法
原创 2019-06-18 19:10:42 · 8578 阅读 · 0 评论 -
python 编写输出到csv
def test_write(self): fields=[] fields.append(orderCode) with open(r'./test001.csv', 'a',newline="") as f: writer = csv.writer(f) writer.writerow(fields)定义一个列表:然后将需要写的数据添加到列表a #追加数...原创 2019-06-18 16:50:47 · 19655 阅读 · 0 评论 -
js修改页面hidden属性
想获取这个value的值,但是看其是个input标签,他的type属性是hidden,也就是只能定位,不能对其操作,想要通过元素的get_attribute("value")是不可能了,怎么办,通过js进行修改,但是首先需要定位这个,先通过控制台js定位一下,正确了再写代码观察这元素,只能通过byname, by class定位,或者css,但是呢,下面的方法里面就没有这种方...原创 2019-08-05 10:18:35 · 18191 阅读 · 0 评论 -
unittest使用详解
一 unittest是什么?unittest是python内置的单元测试框架,具备编写用例、组织用例、执行用例、输出报告等自动化框架的条件。 使用unittest前需要了解该框架的五个概念: 即testcase,testsuite,testLoader,testrunner,testfixture。下面针对unittest模块下的几个成员进行简单的介绍:TestCa...原创 2019-08-05 07:34:11 · 11769 阅读 · 2 评论 -
pycharm创建文件生成固定内容
Pychram创建文件时生成固定内容的文件,当在创建py文件时非常希望工具能自动的替我们生成一些代码,省去我们每次都要重复编写的时间,例如下面这些代码可以说是标配,每个文件都有#!/usr/bin/env python# coding:utf8## Create by bb on 2019/8/30#if __name__ == "__main__": pa...原创 2019-10-08 16:33:11 · 6160 阅读 · 0 评论 -
利用python脚本根据DOI号自动查询参考文献信息
背景: 某人写了一篇论文,需要将参考文献信息内容查询出来,第一步,就是利用人名及年份查询所引用的文献或者文章及文章的doi,如果没用,也可也复制文章在百度里面查找,第二步,拿到doi号在网址里面查询如此往复,如果文章引用超过100jiao多,如此重重,无聊,而且易出错,接下来,我们利用python 编写脚步,自动查询,然后把值保存在txt里面步骤:...原创 2019-09-22 18:54:40 · 16330 阅读 · 0 评论 -
使用mitmproxy自动抓http,https接口
官网地址: https://mitmproxy.org/github地址: https://github.com/mitmproxypypi地址: https://pypi.org/project/mitmproxy/1. 普通安装使用 pip3 install mitmproxy2、设置浏览器代理,端口8080,也可自定义火狐浏览器谷歌浏览器3、后台启动,...原创 2019-09-18 19:23:19 · 11552 阅读 · 0 评论 -
python中类方法,实例方法,静态方法的作用和区别
python中类方法,实例方法,静态方法的作用和区别Python中至少有三种比较常见的方法类型,即实例方法,类方法、静态方法。它们是如何定义的呢?如何调用的呢?它们又有何区别和作用呢?且看下文。首先,这三种方法都定义在类中。下面我先简单说一下怎么定义和调用的。(PS:实例对象的权限最大。)实例方法 定义:第一个参数必须是实例对象,该参数名一般约定为“self”,通过它来...转载 2019-08-10 15:23:56 · 5858 阅读 · 0 评论 -
iframe定位问题
iframe是什么,其实就是页面重新再次嵌套了一个网页,iframe里面一样有html开始结束标签,然后有title,body,就是网页里面套网页,那么selenium操作浏览器只是对当前页面进行操作,那么既然iframe是一个网页,那么要对这进行操作,那么就需要先进入这个网页才可以,打开浏览器时,默认在主文档里面, 那么只能查找主文档里面的元素, 子iframe里面的元素不能查找sele...原创 2019-08-05 17:27:36 · 14747 阅读 · 1 评论 -
cookie、session、sessionid 与jsessionid
cookie、session、sessionid 与jsessionid,要想明白他们之间的关系,下面来看个有趣的场景来帮你理解。 我们都知道银行,银行的收柜台每天要接待客户存款/取款业务,可以有几种方案: 凭借柜台职员的记忆,由收柜台职员来为每位顾客办理存款/取款业务,单凭职员的记忆力,要记到每位顾客的相貌,并迅速这个顾客当前的存款以及存取的次数,每次存取的金额是多少。----...转载 2019-08-01 10:10:36 · 5868 阅读 · 0 评论 -
selenium元素定位
更通俗的理解经过验证id、name,xpath、css四种定位方式是可以的,尤其后两种是“万能的”,所以可以解决99%的定位问题。id 和 name 定位: 假如把一个元素看作一个人的话,id和name可以看作一个人的身份证号和姓名。当然,这些属性值是否唯一要看前端工程师如何设计了根据上面的例子,百度输入框可以取id 和name 进行定位。(前提是id 和nam...原创 2019-08-05 12:01:04 · 6493 阅读 · 2 评论 -
键盘/鼠标事件
一,鼠标事件要使用鼠标操作,首先需要引入ActionChains包from selenium.webdriver.common.action_chains import ActionChainscontext_click() 右击 double_click() 双击 drag_and_drop() 拖动 move_to_element() 鼠标悬停在一个元素上 click...原创 2019-08-05 08:17:48 · 5929 阅读 · 0 评论 -
测试报告生成
最后一步关闭文件是关键,如果不关闭,那么生成的文件里面是空的,没有内容,可以这么理解,前面所作的一切动作,把数据都存在了缓存或者内容当中,只有执行关闭文件的瞬间,才会把里面的内容写到文件当中,如果没有这一步,那么缓存或者内容当中的内容是不会提交到文件当中的,当然你打开文件里面肯定是空的,没有内容retyr=1,表示如果里面有失败的用例,那么重新在执行一次,如果等于2,表示执行二次,等于0表示失...原创 2019-08-05 07:52:29 · 6518 阅读 · 0 评论 -
DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documenta
运行unittest报错Testing started at 20:31 ...D:\Program Files (x86)\JetBrains\PyCharm 2016.3\helpers\pycharm\utrunner.py:2: DeprecationWarning: the imp module is deprecated in favour of importlib; see ...原创 2019-05-16 20:48:00 · 11989 阅读 · 2 评论 -
selenium+pyton关于判断元素是否存在的问题
https://blog.csdn.net/u012189659/article/details/36391837 背景:selenium+python处于学习阶段,功能实现之后开始整理之前写的代码,突然发现一个功能没有做判断,比如,点击“请登录”,需要判断一下这个弹出框到底弹了没有,这...转载 2019-05-16 18:56:34 · 6180 阅读 · 0 评论 -
python基础
https://www.cnblogs.com/programmer-tlh/p/5803561.html转载 2018-12-12 15:21:33 · 4353 阅读 · 0 评论 -
python装饰器
https://mp.weixin.qq.com/s/5gFl2BQSzTNbGR4fZQn1Xg转载 2018-11-28 13:47:45 · 4709 阅读 · 0 评论 -
使用 sed 一键修改 python 的 pip/pypi 源
Python 默认的 pip 源是[global]index-url = https://pypi.python.org/simple/国内访问速度比较慢,可以通过修改 ~/.pip/pip.conf 配置来指定国内的 pip 源。我一般使用清华的 pip 源,速度很快。安装完 Python 之后可以很方便地使用 sed 一键修改 pip 源一键修改 pip 源sed -i ‘s/ht...转载 2018-12-04 10:20:32 · 3376 阅读 · 0 评论 -
Python序列化和反序列化
https://www.cnblogs.com/sun-haiyu/p/7087088.html转载 2018-11-26 14:17:01 · 703 阅读 · 0 评论 -
Python高级编程-多线程
https://www.cnblogs.com/z-joshua/p/6409362.html Python高级编程-多线程 (一)进程线程概述:很多同学都听说过,现代操作系统比如Mac OS X,UNIX,Linux,Windows等,都是支持“多任务”的操作系统。什么叫“多任务”呢?简单地说,就是操作系统可以同时运行多个任务。打个比方,你一边在用浏览器上网,一边在听...转载 2018-11-17 17:29:27 · 3112 阅读 · 0 评论 -
Robot framework框架安装教程
1:安装python安装python后,然后在path中添加环境变量D:\ProgramFiles\python\Python27\2:安装pip工具在cmd输入:python setup.py install然后在path中添加python路径下的script目录3:安装pip install robotframework4:安装wxPython 2.8.12.15:robotf...原创 2018-11-06 20:46:47 · 3958 阅读 · 0 评论 -
pycharm+selenium环境搭建
1.安装python27双击执行python-2.7.15.msi,选择装到根目录,建议d:\Python27。一路下一步,直到完成。安装完成之后,打开cmd,输入:python,如果显示以下内容则说明安装python成功如果提示命令不存在则需要设置环境变量。windows:右键我的电脑–属性–高级系统设置–高级–环境变量–系统变量找到path项,加上值,D:\Python27;D:\P...原创 2018-11-06 20:33:22 · 11118 阅读 · 1 评论 -
python 的列表遍历删除
现在有有X,Y两个列表,x=[1,2,3,4,5,6,7],y=[0.1,-3,0.4,0.5,6,-0.2,-2]以x为横坐标,y为纵坐标,其中将纵坐标y小于0大于1的点删除掉,1、思路:先求y列表的长度2、循环y的长度,只要是小于0大于1的,然后把对应的y和x点删掉3、然后将x,y画出来原先x,y列表画出来的图:优化后,符合条件的:bfwu.reverse() 为什么这块要...原创 2018-11-06 20:23:16 · 5153 阅读 · 0 评论 -
Python Selenium 常用方法总结
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xie_0723/article/details/51437650 </div> <lin...转载 2019-05-21 17:18:57 · 4855 阅读 · 0 评论 -
python format()用法详解
str.format() 这个特性从python2.6而来 其实实现的效果和%有些类似 不过有些地方更方便通过位置映射:In [1]: '{0},{1}'.format('kzc',18) Out[1]: 'kzc,18'In [2]: '{},{}'.format('kzc',18) # 注意python2.6并不支持写为空Out[2]: 'kzc,18'In [3]: ...原创 2019-04-25 16:47:22 · 12215 阅读 · 1 评论 -
关于supervisor 的使用以及配置
首先我个人认为,用python实现的supervisor使用了守护进程这个概念去实现一个包裹进程的概念。他可以帮助你的进程完成失效重启,日志记录,确保在线,关机自启动等一系列的功能。当使用supervisor的进程死掉的时候,启动他的守护进程可以帮助你重新完成启动该进程的工作,不必再重复的手动去启这个进程,大大的提升了稳定性。所以可以这样理解,supervisor进程本身是作为被...原创 2019-04-25 16:43:30 · 3024 阅读 · 0 评论 -
python requests 设置 和 charles相关抓包的问题
由于api请求最大的问题就是调试。所以抓包当然是必不可少。在更新了新版的requests之后,charles是没有办法抓到requests包的。他就着么莫名其妙从charles的监听下面溜走了。 这里就需要设置requests的代理,将http 和https的代理字段都指向charles的代理地址 默认是 本地的8888端口 然后将这个字段传给proxiesproxies = { "ht...原创 2019-04-25 16:22:05 · 7662 阅读 · 0 评论 -
Python Json序列化与反序列化的示例
# -*- coding: utf-8 -*-import jsondict = {'name':'zhangsan', 'age':33, 'address':'红星路'}print'未序列化前的数据类型为:', type(dict)print'为序列化前的数据:', dict#对dict进行序列化的处理dict_xu = json.dumps(dict,ensure_ascii...转载 2019-04-29 13:49:12 · 3508 阅读 · 0 评论 -
Python中函数和方法的区别
简单总结:与类和实例无绑定关系的function都属于函数(function); 与类和实例有绑定关系的function都属于方法(method)。首先摒弃错误认知:并不是类中的调用都叫方法函数(FunctionType)函数是封装了一些独立的功能,可以直接调用,能将一些数据(参数)传递进去进行处理,然后返回一些数据(返回值),也可以没有返回值。可以直接在模块中进行定义使用。...转载 2019-04-28 21:48:23 · 39164 阅读 · 4 评论