# 先安装ruamel.yaml模块 写入配置文件: import os# 先安装ruamel.yaml模块from ruamel import yaml # 将字典写入到yamldict = { 'host1': '123', 'host2': '456', 'host3': '789', 'host4': '147', 'host5': {'asd': '123'} } curpath = os.path.dirname(os.path.realpath(__file__))yamlpath…
 #!/usr/bin/env python# -*- coding: utf-8 -*-# @Time    : 2018/5/28 18:51# @Author  : StalloneYang# @File    : mysql_test.py# @desc: # 连接数据库 import pymysql.cursors # 连接MySQL数据库connection = pymysql.connect(host='localhost', port=3306, user='yang', pas…
    import requestsimport unittest class TestQQ(unittest.TestCase):    '''测试QQ号接口'''      # 此注释将展示到测试报告的测试组类 def test_qq(self):        '''测试QQ号码,正确的appkey'''      # 此注释将展示到测试报告的用例标题        url = 'http://japi.juhe.cn/qqevaluate/qq'        par = {     …
1.中文乱码问题: (1).文件头加上# -*- coding:utf-8 -*- 或者 #coding=utf8 (2).pymssql.connect连接串中charset是要跟你数据库的编码一样,如果是数据库是gb2312 ,则写charset='gb2312'. (3).读取数据时需要decode('utf-8'),写入数据时需要encode('utf-8'),这样就可以避免中文乱码或报错问题. 2.需要安装pymssql包(连接mysql安装pymysql) pip install p…
# 添加多个附件参数化files = [("1.png", "1.png") ("2.png", "2.png") ]def addFiles(files, n=1): file = [] for i in list(range(n)): a =("files[]", (files[i][1], open(files[i][2], "rb"), "image/png"…
文件下载类型: Content-Type: octets/stream   一般为文件类型:…
# coding:utf-8import requestsimport refrom bs4 import BeautifulSoup # s = requests.session() # 全局的s def get_token(s): ''' fuction: 获取token args: s 参数 ->s = requests.session() :return anti_token ->{'X-Anit-Forge-Token': 'xx', 'X-Anit-Forge-Code': '38…
python接口自动化测试二十七:密码MD5加密   ''' MD5加密 '''# 由于MD5模块在python3中被移除# 在python3中使用hashlib模块进行md5操作import hashlib # 待加密信息str = 'asdas89799,.//plrmf'# 创建md5对象hl = hashlib.md5()# Tips# 此处必须声明encode# 若写法为hl.update(str) 报错为: Unicode-objects must be encoded before…
url = '接口地址' r = requests.get(url)                      # 发送get请求 print(r.status_code)              # 打印状态码,若有重定向,返回的是重定向之后的代码 print(r.headers)                 # 打印返回的报头(头部) print(r.text)                    # 查看返回结果的文本形式 r.status_code               …
# 以禅道为例: 一.创建一个类,类里面写一个登录方法: import requestsclass LoginZentao(): def __init__(self, s): # 初始化 self.s = s # 定义一个全局的s def login(self): r = self.s.post() # self.s调用全局的s pass if __name__=='__main__': s = requests.session() zentao = LoginZentao(s) # 类实例化为…
一.介绍 本例子用Selenium +phantomjs爬取节目(http://tv.cctv.com/epg/index.shtml?date=2018-03-25)的信息 二.网站信息 三.数据抓取 针对上面的网站信息,来进行抓取 1.首先抓取信息列表 抓取代码:Elements = doc('div[class="epglist"]').find('ul') 2.节目名称,链接,时间 title = subEle('div[class="innerbox"]'…
简介 在网页中我们经常使用缩放操作来便利的查看具体的信息,在appium中使用MultiAction多点触控的类来实现.MultiAction是多点触控的类,可以模拟用户多点操作.主要包含加载add()和执行perform()两个方法. 问题思考 在使用地图App中,我们经常需要对界面进行缩放操作来更加便利的查看位置.那么在Appium中怎样去模拟这类操作呢? MultiAction MultiAction 是多点触控的类,可以模拟用户多点操作.主要包含 add() 和 perform() 两个…
TeserHome地址:https://testerhome.com/opensource_projects/60前端:https://github.com/pencil1/ApiTestWeb 实现技术:js + vue + element-ui后端:https://github.com/pencil1/ApiTestManage 实现技术:python + flask + httprunner windows版 准备工作:1.python3环境2.把项目下载并解压到一个文件夹 后台配置1.安…
简介 上一篇说了关于json数据处理,是为了断言方便,这篇就带各位小伙伴实战一下.首先捋一下思路,然后根据思路一步一步的去实现和实战,不要一开始就盲目的动手和无头苍蝇一样到处乱撞,撞得头破血流后而放弃了.不仅什么没学习 到,自己的自信心都受到打击了,自己都怀疑自己.其实你是最棒的,天生我材必有用,好了废话不说,进入实战——以查看快递物流接口为例. 大致流程步骤:web页面操作—>抓包看参数和url—>代码模拟接口请求—>取到接口返回结果—>断言 web页面操作 1.浏览器输入快递物…
环境搭建好后,接下来我们先来了解一下requests的一些简单使用,主要包括: requests常用请求方法使用,包括:get,post requests库中的Session.Cookie的使用 其它高级部分:认证.代理.证书验证.超时配置.错误异常处理等. 本节首先来了解一下requests库中如何发送get请求: 一.看下方法定义: 1.到官方文档去了下requests.get()方法的定义,如下: 2.点击右上角的[source],看一下它的源码如下: 看到最后一行return,get方法…
环境搭建好后,接下来我们先来了解一下requests的一些简单使用,主要包括: requests常用请求方法使用,包括:get,post requests库中的Session.Cookie的使用 其它高级部分:认证.代理.证书验证.超时配置.错误异常处理等. 本节首先来了解一下requests库中如何发送get请求: 一.看下方法定义: 1.到官方文档去了下requests.get()方法的定义,如下: 2.点击右上角的[source],看一下它的源码如下: 看到最后一行return,get方法…
参考:使用模块 NOTE 1.内建sys模块: #!/usr/bin/env python3 import sys 'a test module' __author__ = 'wasdns' def main(): args = sys.argv if len(args) == 1: print('Hello') elif len(args) == 2: print('Hello, %s' % args[1]) else : print('Your network has some proble…
早期的计算机通信需要有一个中间件,A要给B传东西,A必须要把信息传给中间件,B再把从中间件中拿到信息 由于不同机器之间需要通信就产生了网络 软件开发的架构 1.C/S架构 服务器-客户机,即Client-Server架构,C/S架构通常采取两层结构.Sever负责数据的管理,Client负责完成与用户的交互任务 这里来说Client主要是某个应用软件的exe文件,程序要在安装后,才能运行在用户电脑上. 例如:QQ.微信.网易云音乐等 2.B/S架构 浏览器端-服务器,即Browser-Sever…
官方文档1.官方文档地址:https://pypi.python.org/pypi/ParamUnittest/2.github源码下载地址:https://github.com/rik0/ParamUnittest 安装paramunittest: 源码里面设定了必须定义一个setParameters方法接收参数 字典格式 运行结果 import unittestimport paramunittest @paramunittest.parametrized( {'user': 'user1'…
GitHub传送门:https://github.com/TesterlifeRaymond/BeautifulReport 配置BeautifulReport 下载.解压并修改名字为BeautifulReport: 把BeautifulReport文件夹复制放到python安装目录下的site-packages下,如我的目录: 在BeautifulReport/sample下,运行sample.py文件,出现以下结果,则说明BeautifulReport的配置已可用 接下来使用到项目上…
转载自:http://www.cnblogs.com/liwenzhou/articles/8283687.html 我们之前使用pymysql操作数据库的操作都是写死在视图函数中的,并且很多都是重复的代码. 我们可以优化一下,把重复的代码提取出来,写成函数: import pymysql # 定义一个数据库相关的配置项 DB_CONFIG = { "host": "127.0.0.1", "port": 3306, "user&quo…
# MD5加密 # 由于MD5模块在python3中被移除# 在python3中使用hashlib模块进行md5操作 import hashlib def MD5(str): # 创建md5对象 hl = hashlib.md5() hl.update(str.encode(encoding='utf-8')) return hl.hexdigest() # 将小写字母切换成大写 # return hl.hexdigest().upper() if __name__=="__main__&quo…
# 类和方法 class Count(): def __init__(self, aaa, bbb): # 初始化 # 可以放公共的参数 print('实例化的时候,会执行init的内容') self.a = aaa self.b = bbb # 加了self是全局变量,没加self是局部变量 def abb(self): # 类里面的叫方法,不叫函数 return self.a + self.b def abb(self, a, b): # 类里面的叫方法,不叫函数 return self.a…
# MD5加密 # 由于MD5模块在python3中被移除# 在python3中使用hashlib模块进行md5操作import hashlib def MD5(str): # 创建md5对象 hl = hashlib.md5() # 此处必须声明encode # 若写法为hl.update(str) 报错为: Unicode-objects must be encoded before hashing hl.update(str.encode(encoding='utf-8')) md5 =…
JAVA之旅(二十九)--文件递归,File结束练习,Properties,Properties存取配置文件,load,Properties的小练习 我们继续学习File 一.文件递归 我们可以来实现一个文件管理器,简单的,但是在此之前,我们先来做点小案例 package com.lgl.hellojava; import java.io.File; public class HelloJJAVA { public static void main(String[] args) { File d…
1.简介 有些测试场景或者事件,Selenium根本就没有直接提供方法去操作,而且也不可能把各种测试场景都全面覆盖提供方法去操作.比如:就像鼠标悬停,一般测试场景鼠标悬停分两种常见,一种是鼠标悬停在某一个元素上方,然后会出现下拉子菜单,第二种就是在搜索输入过程,选择自动补全的字段.关于鼠标悬停,selenium把这个方法放在了Actions.java文件中,先来看看鼠标悬停出现下拉菜单的情况. 2.鼠标悬停出现下拉菜单 鼠标悬停出现下拉菜单,顾名思义就是:鼠标悬停在某一元素上出现下拉菜单. 2.…
第三百二十九节,web爬虫讲解2—urllib库爬虫—ip代理 使用IP代理 ProxyHandler()格式化IP,第一个参数,请求目标可能是http或者https,对应设置build_opener()初始化IPinstall_opener()将代理IP设置成全局,当使用urlopen()请求时自动使用代理IP #!/usr/bin/env python # -*- coding: utf-8 -*- import urllib import urllib.request import ran…
原文:WCF技术剖析之二十九:换种不同的方式调用WCF服务[提供源代码下载] 我们有两种典型的WCF调用方式:通过SvcUtil.exe(或者添加Web引用)导入发布的服务元数据生成服务代理相关的代码和配置:通过ChannelFactory<TChannel>创建服务代理对象.在这篇文章中,我们采用一种独特的方式进行服务的调用.从本质上讲,我们只要能够创建于服务端相匹配的终结点,就能够实现正常的服务调用.在WCF客户端元数据架构体系中,利用MetadataExchangeClient可以获取服…
Citrix服务器虚拟化之二十九  XenApp 6.5发布服务器上的应用程序 XenApp可发布以下类型的资源向用户提供信息访问,这些资源可在服务器或桌面上虚拟化: 1)  服务器桌面:发布场中服务器的整个Windows桌面,插件连接到服务器之后,用户会看到可用来启动该服务器上安装的任何应用程序的桌面界面.选择了此应用程序类型后,必须指定要发布的服务器.要发布桌面,计算机上必须正在运行 XenApp.如果您在没有运行 XenApp 的计算机上运行 Citrix AppCenter,则无法发布本…
0. 系列文章 1.使用Typescript重构axios(一)--写在最前面 2.使用Typescript重构axios(二)--项目起手,跑通流程 3.使用Typescript重构axios(三)--实现基础功能:处理get请求url参数 4.使用Typescript重构axios(四)--实现基础功能:处理post请求参数 5.使用Typescript重构axios(五)--实现基础功能:处理请求的header 6.使用Typescript重构axios(六)--实现基础功能:获取响应数据…