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…
首先贴一下测试结构 测试流程: 1.打开百度主页 2.搜索框输入搜索内容 3.获取浏览器title 4.验证title的正确性 百度搜索业务关键字:采用分层结构:只需输入要搜索的内容:${search}:要验证的title:${title}; 其中利用template将search.title数据驱动 步骤一: 建立template关键字,如下图: ${a}|${b} 对应 百度搜索业务关键字的${search} ${result} 步骤二:测试套件,输入要搜索的内容以及验证title的正确性;…
前言 在学习的过程中,可能会误认为Robot framework 只是个web UI测试工具,更正确的理解Robot framework是个测试框架,之所以可以拿来做web UI层的自动化是国为我们加入了selenium2的API.工作中,更多的是拿Robot framework来做数据库的接口测试,当然,需要先将相关的数据库包导入. 那么测试框架的本质是什么?个人觉得有以下几个方面. 1.比较 测试实质就是“比较”,在测试之前需要先写用例,假设经过各种操作之后会得到一个预期的结果,然后,在测试…
一. 获取应用包名和入口activity 获取应用包名和入口activity:aapt命令 aapt目录: 安卓sdk的build-tools目录下(如果要在cmd里直接运行,要配置环境变量,否则需要在aapt所在目录下打开cmd) 示例: adt-bundle-windows-x86_64-20140702\sdk\build-tools\android-4.4W 命令语法: aapt dump badging apk安装包名 示例: aapt dump badging D:\Python全栈…
[Jmeter篇]Jmeter+Ant+Jenkins接口自动化测试集成之半路逆转(二) 橙子探索测试发表于橙子探索测试订阅 72 [Jmeter篇]jmeter+Ant+Jenkins接口自动化测试集成(一) 一.更改方案 由于上一篇文章[Jmeter篇]jmeter+Ant+Jenkins接口自动化测试集成(一)中build.xml在cmd下执行ant正常且生成jtl文件和html文件,但是在jenkins构建多次一直失败,未能生成jtl文件和html文件,偶尔成功1次,未能找到解决原因,所…
1.安装python 百度搜索安装程序即可:我安装的python 2.7.6 64位 2.安装wxpython 版本:wxPython2.8 下载地址:http://sourceforge.net/projects/wxpython/files/wxPython/2.8.12.1/ 特别说明:一定要用2.8版本的,3.0的ride打不开,亲测 3.安装ride:用例管理软件 下载地址:https://pypi.python.org/pypi/robotframework-ride 安装完后,桌面…
做为一名刚接触自动化测试的人,才知道单元测试原来也挺有讲究的. 我塞,Test注解报错,没有道理啊~之前好好的,怎么会出现这样~ 原因如下,本人新建了个Test类,报错重名, 难怪提示Test不是注解类型,以后有空本人将写写jdk1.5的新特性自定义注解 解决方案:把Test类删除即可. 突然发现测试也是一件好玩的事~未完待续…
环境搭建好后,接下来我们先来了解一下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方法…
# 以禅道为例: 一.创建一个类,类里面写一个登录方法: 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) # 类实例化为…
示例代码: https://github.com/ryan255/TestNG-Demo 项目代码结构参考上一章 TestNG+Maven+IDEA 自动化测试(一) 环境搭建 maven插件引入 <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId&…
在第一节中,我们已经成功打开了页面,但是自动化测试必然包含了表单的填写与按钮的点击. 所以在第二章中我以博客园为例,完成按钮点击,表单填写 还是以代码为准,先上代码: package com.ryan; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.Chrome…
HTML 一.结构 html> 与 </html> 之间的文本描述网页 <body> 与 </body> 之间的文本是可见的页面内容 <h1> 与 </h1> 之间的文本被显示为标题 <p> 与 </p> 之间的文本被显示为段落 <html> <head> 快递单 </head> <body> 邮寄的东西 </body> </html> 二.概念…
环境搭建起来之后, 就可以开始移动自动化了. 但是使用自带的AVD开启模拟器, 速度实在太慢. 于是用夜神来做替代, 稍微能够有一些提速. 启动appuim 打开Appium,点击右上角Start按钮 输出如下信息, 表示启动成功 可以提前获取如下信息: 主机: 127.0.0.1:4723 desired_caps['platformName'] = 'Android' desired_caps['platformVersion'] = '23' desired_caps['deviceNam…
ConfigParser 是Python自带的模块, 用来读写配置文件, 用法及其简单. 直接上代码,不解释,不多说. 配置文件的格式是: []包含的叫section,    section 下有option=value这样的键值 配置文件   test.conf [section1] name = tank age = 28 [section2] ip = 192.168.1.1 port = 8080 Python代码 # -* - coding: UTF-8 -* - import Con…
url = '接口地址' r = requests.get(url)                      # 发送get请求 print(r.status_code)              # 打印状态码,若有重定向,返回的是重定向之后的代码 print(r.headers)                 # 打印返回的报头(头部) print(r.text)                    # 查看返回结果的文本形式 r.status_code               …
# 先安装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…
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…
# 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…
 #!/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 = {     …
# 添加多个附件参数化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   一般为文件类型:…
# 类和方法 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…
# 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…
python3 元素定位和操作方法总结 # coding=utf-8 ''' #8种元素定位方法 find_element_by_id() find_element_by_name() find_element_by_class_name() find_element_by_link_text() find_element_by_partial_text() find_element_by_tag_name() find_element_by_xpath() find_element_by_cs…
# 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 =…
在平常的测试工作中,经常要安装软件,卸载软件,  即繁琐又累.  安装和卸载完全可以做成自动化. 安装软件我们可以通过自动化框架,自动点击Next,来自动安装.  卸载软件我们可以通过msiexec命令行工具自动化卸载软件 阅读目录 用msiexec 命令来卸载软件 注册表中查找ProductCode C#中自动卸载软件 C#查找注册表中的ProductCode 完整源代码下载 用msiexec 命令来卸载软件 平常我们手动卸载软件都是到控制面板中的"添加/删除"程序中去卸载软件, 或…
目前市面上有很多Web UI自动化测试框架,比如WatiN, Selinimu,WebDriver,还有VS2010中的Coded UI等等.  这些框架都可以操作Web中的控件,模拟用户输入,点击等操作,实现Web自动化测试.其实这些工具的原理都一样,都是通过调用IE COM接口和HTML DOM 对IE浏览器以及WEB测试对象的操作. 本文介绍脱离这些自动化测试框架.  直接使用.NET提供的shdocvm.dll库来操作IE浏览器,使用mshtml.dll库来操作IE中的 HTML对象.…
还记得2011年春运,12306火车票预订网站经常崩溃无法登录吗. 今天我们就开发一个12306网站自动登录软件. 帮助您轻松订票 通过前两篇博客Fiddler教程和HTTP协议详解,我们了解了Web的原理. Web的原理就是,浏览器发送一个Request给Web服务器,Web服务器处理完这个请求之后发送一个HTTP Response给浏览器. 如果我们用自己写的程序来发送Request给Web服务器,然后再捕获Web服务器发回来的Response. 检查它与期望值值是否一致. 这不就是Web自…