1、套件的问题
将所有的测试用例加进去,会一个个执行,用于用例名字没有规范test开头的时候
  1. def suite():
  2. suite = unittest.TestSuite
  3. suite.addTest(LoginTestCase("test_log_in"))
  4. suite.addTest(LoginTestCase("test_log_out"))
  5. return suite
  6. if __name__ =='__main__':
  7. unittest.main(defaultTest ='suite')
2、python异常
  1. try:
  2. self.driver.find_element_by_id('tv_subtopiccomments_content')
  3. result =0
  4. except Exception as e:
  5. result =1
  6. self.assertEqual(result,1,'delete topic sub comment failed')
3、用adb命令可以通过id打开确切的某个页面
备注:import os
4、封装(!!每个包需要有init文件)
◆ from 包.名字 import 文件名:from util import Add
◆ 引用:文件名.类名().方法名(参数):Add.add().findById(self.driver)
函数

4、图像对比使用PIL:Python Imaging Library,已经是Python平台事实上的图像处理标准库了。PIL功能非常强大,但API却非常简单易用。
http://effbot.org/imagingbook/
5、python读取excel数据
  1. excel = xlrd.open_workbook('excel文件位置')
  2. sheet = excel.sheets()[0]# 读取第一个sheet数据
  3. a =[]
  4. for i in range(0,10):
  5. a.append(sheet.row_values(i)) # 读取保存在list里
  6. print(a[i])
  7. print(sheet.row_values(1))# 打印第i行 print(sheet.col_values(0)) # 打印第j列
6、安装xlrd、xlwt插件,读取excel文件
下载:https://pypi.python.org/pypi/xlwt
解压,从命令窗口进入目录
运行python setup.py install
在pycharm的界面import一下


Python文件读写

1、读取文件

读取txt文件,要定义标识符,打开文件之后要调用关闭函数

f = file(name[, mode[, buffering]])
入口参数: name 文件名
mode 字符串
buffering 是否缓冲 (0=不缓冲,1=缓冲, >1的int数=缓冲区大小)

mode 选项
r:以读方式打开,只能读文件 , 如果文件不存在,会发生异常
w : 以写方式打开,只能写文件, 如果文件不存在,创建该文件,如果文件已存在,先清空,再打开文件
rb: 以二进制读方式打开,只能读文件 , 如果文件不存在,会发生异常
wb: 以二进制写方式打开,只能写文件, 如果文件不存在,创建该文件.如果文件已存在,先清空,再打开文件
rt: 以文本读方式打开,只能读文件 , 如果文件不存在,会发生异常
wt: 以文本写方式打开,只能写文件, 如果文件不存在,创建该文件.如果文件已存在,先清空,再打开文件
rb+: 以二进制读方式打开,可以读、写文件 , 如果文件不存在,会发生异常
wb+: 以二进制写方式打开,可以读、写文件, 如果文件不存在,创建该文件如果文件已存在,先清空,再打开文件

report = open(path, 'r')  # 读文件形式打开可读文件print("Before changed: " + report.read() + '\n') #read一次读取所有
report.close()
report = open(path, 'wb') # 打开可写文件
report.write("Yes! It's Alien!")
report.close()
report = open(path, 'r')
print('After changed: ' + report.read() + '\n')report.close()

引入with,自动调用close函数,防止中间报错,系统打开过多文件

with open('/path/to/file', 'r') as f: print f.read()

如果不能确定文件大小,反复调用read(size)比较保险;如果是配置文件,调用readlines()最方便:

for line in f.readlines():
print(line.strip()) # 把末尾的'\n'删掉

2、读取二进制文件

默认都是读取文本文件,并且是ASCII编码的文本文件。要读取二进制文件,比如图片、视频等等,用'rb'模式打开文件即可:

  f = open('/Users/michael/test.jpg', 'rb')
f.read()'\xff\xd8\xff\xe1\x00\x18Exif\x00\x00...' # 十六进制表示的字节

3、清空文件内容

f.truncate()

4、读取txt的某一行

# with open(path, 'r') as fd:
# for line in fd:
# lnum += 1
# if (lnum == 11):
# token = line[15:-1]
# print(token)
# fd.close()

5、读取json数据,key的value值
def getvalue(testfile,key):
res=[]
s=''
with open(testfile, 'r') as f:
for line in f:
line=line.decode('gbk')
if(line.find(key)<>-1):
s=line.split(key)[1].strip().split(' ')[0].strip()
return s

print(getvalue(path, 'X-Access-Token:'))

appium自动化测试(5)-一些pyhon操作的更多相关文章

  1. Appium自动化测试3之获取apk包名和launcherActivity后续

    接着“Appium自动化测试3之获取apk包名和launcherActivity”章节介绍 测试脚本 1.测试脚本如下: # -*- coding:utf-8 -*- import os, time, ...

  2. appium自动化测试(二)

    一. 获取应用包名和入口activity 获取应用包名和入口activity:aapt命令 aapt目录: 安卓sdk的build-tools目录下(如果要在cmd里直接运行,要配置环境变量,否则需要 ...

  3. Appium自动化测试环境搭建

    前言 Appium是一个开源的自动化测试框架,支持跨平台,支持多种编程语言,可用于原生,混合和移动web应用程序,使用webdriver驱动ios,android应用程序.那么为了学习app自动化测试 ...

  4. Appium+python自动化(三十八) - Appium自动化测试框架综合实践 - 框架简介-助你冲击高薪,迎娶白富美(超详解)

    简介 好久没有更新博客了,博友们是不是有点等不及了.不好意思啊,中秋节过后太忙了,这篇是好不容易抽点零碎时间写的.从这一篇开始小伙伴或者童鞋们,就跟随宏哥的脚步,一步步的从无到有,从0到1的搭建一个完 ...

  5. Appium+python自动化(四十一)-Appium自动化测试框架综合实践 - 即将落下帷幕(超详解)

    1.简介 今天我们紧接着上一篇继续分享Appium自动化测试框架综合实践 - 代码实现.到今天为止,大功即将告成:框架所需要的代码实现都基本完成. 2.data数据封装 2.1使用背景 在实际项目过程 ...

  6. Appium自动化测试教程-自学网-adb命令

    adb命令: adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信.它可为各种设备操作提供便利,如安装和调试应用. T ...

  7. 全网最全最细的appium自动化测试环境搭建教程以及appium工作原理

    一.前言 ​ 对于appium自动化测试环境的搭建我相信90%的自学者都是在痛苦中挣扎,在挣扎中放弃,在放弃后又重新开始,只有10%的人,人品比较好,能够很快并顺利的搭建成功.appium 自动化测试 ...

  8. Python+Appium自动化测试(6)-元素等待方法与重新封装元素定位方法

    在appium自动化测试脚本运行的过程中,因为网络不稳定.测试机或模拟器卡顿等原因,有时候会出现页面元素加载超时元素定位失败的情况,但实际这又不是bug,只是元素加载较慢,这个时候我们就会使用元素等待 ...

  9. 《手把手教你》系列技巧篇(二十九)-java+ selenium自动化测试- Actions的相关操作上篇(详解教程)

    1.简介 有些测试场景或者事件,Selenium根本就没有直接提供方法去操作,而且也不可能把各种测试场景都全面覆盖提供方法去操作.比如:就像鼠标悬停,一般测试场景鼠标悬停分两种常见,一种是鼠标悬停在某 ...

  10. appium 自动化测试案例

    原文地址http://www.cnblogs.com/tobecrazy/p/4579631.html 原文地址http://www.cnblogs.com/tobecrazy/ 该博主有很多干货,可 ...

随机推荐

  1. SAI常用快捷键大全

    一.默认常用工具快捷键如下: N 铅笔 B 喷枪 V 笔 X 前/背景色切换 - 前景色与透明色切换 C 水彩笔 A 选区笔 S 选区擦 D 清空当前图层 F 向下转写 (当前图层内容合并至下层,该层 ...

  2. Java 创建PDF文件包的2种方法

    1. 概述 PDF文件包可方便在仅打开一个窗口的情况下阅读多个文档,通过将多个PDF文档或其他非PDF文档封装在一起,打开文件包后可以随意切换查看文件包中的文档,在需要编辑更改的情况,也可以打开文本包 ...

  3. 配置Oracle遇到问题<一>

    1, 将D:\app\product\11.2.0\dbhome_1\NETWORK复制到D:\app\product\instantclient_11_2.为了处理: 12154错误,不过没有解决. ...

  4. JPA事务中的异常最后不也抛出了,为什么没被catch到而导致回滚?

    上周,我们通过这篇文章<为什么catch了异常,但事务还是回滚了?>来解释了,之前test4为什么会回滚的原因. 但还是收到了很多没有理解的反馈,主要是根据前文给出的线索去跟踪,是获得到了 ...

  5. Docker构建mysql主从

    一.为什么要搭建主从架构呢 1.数据安全,可以进行数据的备份. 2.读写分离,大部分的业务系统来说都是读数据多,写数据少,当访问压力过大时,可以把读请求给到从服务器.从而缓解数据库访问的压力 3.故障 ...

  6. 12.5finally子句

    要点提示:无论异常是否产生,finally子句总是会执行的. 有时候无论异常是否出现或者是否被捕获,都希望执行某些代码.java有一个finally子句,可以用来达到这个目的. 注意:使用finall ...

  7. flink数据广播场景总结

    数据集广播,主要分为广播变量,广播维表(数据集)两种,一种为变量,一种为常量(抽象的说法): 一.数据广播背景 对于小变量,小数据集,需要和大数据集,大流进行联合计算的时候,往往把小数据集广播出去,整 ...

  8. 传统mvc platform与前后端分离项目smart 共用域名nginx配置

    #server { # listen 80; # server_name 139.129.100.155 rjhaasz.cn; # rewrite ^(.*)$ https://$host$1 pe ...

  9. asp.net core 视图组件(转)

    介绍视图组件 视图组件是 ASP.NET Core MVC 中的新特性,与局部视图相似,但是它们更加的强大.视图组件不使用模型绑定,只取决于调用它时所提供的数据.视图组件有以下特点: 渲染一个块,而不 ...

  10. Java | 字符串的使用 & 分析

    字符串 字符串广泛应用 在 Java 编程中,在 Java 中字符串属于对象,在程序中所有的双引号字符串,都是String类的对象. 字符串的特点 1.字符串的内容永不可变. 2.正在是因为字符串的不 ...