Python自动化测试代码编码规范

一、适用范围:

本规则基础为Python标准PEP8,在此基础上加了我司测试部编码规范,适用于测试部所有Python脚本编写是采用的规则.

二、编码:

所有的 Python 脚本文件都应在文件头标上 # -*- coding:utf-8 -*- 。设置编辑器,默认保存为 utf-8 格式。

三、注释:

存在技术难点的代码:

采用 # 开头的注释,表明为何选择当前实现以及这种实现的原理和难点。

包、模块、类、函数(方法)使用DocStrings:

文档字符串内部包括内容:

包、模块、类、函数(方法)主要目的,传参类型以及其他需要备注内容。

四、格式:

缩进:

Python 依赖缩进来确定代码块的层次,行首使用4个空格缩进。

换行:

每行最大长度79,换行可以使用反斜杠,最好使用圆括号。换行点要在操作符的后边敲回车

五、命名:

总体规则:

1)尽量单独使用小写字母‘l’,大写字母‘O’等容易混淆的字母。

2)尽量使用全拼写的单词,缩写的情况有如下两种:

I.常用的缩写,如 XML、ID等,在命名时也应只大写首字母,如:

classXmlParser(object):pass

II.命名中含有长单词,对某个单词进行缩写。这时应使用约定成俗的缩写方式,如去除元音、包含辅音的首字符等方式,例如:

function 缩写为 fn

text 缩写为 txt

object 缩写为 obj

count 缩写为 cnt

number 缩写为 num,等。

常量:

常量名所有字母大写,由下划线连接各个单词。

变量:

1)使用全部小写的方式,可以使用下划线。

2)全局变量尽量只在模块内有效。

3)__xxx__ 形式的系统保留字命名法,项目中也可以使用。这种形式的变量是只读的,这种形式的类成员函数尽量不要重载。如:

class Base(object):

def __init__(self, id, parent = None):

self.__id__ = id

self.__parent__ = parent

def __message__(self, msgid): # …略

其中 __id__、__parent__ 和 __message__ 都采用了系统保留字命名法。

方法:

方法命名使用全部小写的方式,可以使用下划线。

类:

1)类的命名使用首字母大写,类名已驼峰的方式,模块内部的类在前面加下划线。

2)类的属性若与关键字名字冲突,后缀加一下划线,尽量不要使用缩略等其他方式。

3)类的方法第一个参数必须是self。

4)使用robotFramework时,类名必须与文件名一致。

5)每个类必须继承object

六、语句:

Import:

1)import 的次序,先 import Python 内置模块,再 import 第三方模块,最后 import 自己开发的项目中的其它模块;这几种模块中用空行分隔开来。

2)一条 import 语句 import 一个模块。

3)当从模块中 import 多个对象且超过一行时,使用如下断行法(此语法 py2.5 以上版本才支持):

from module import (obj1, obj2, obj3, obj4,obj5, obj6)

4)不要使用 from module import *。

赋值:

对于赋值语言,主要是不要做无谓的对齐,如:

a = 1 # 这是一个行注释

variable = 2 # 另一个行注释

fn = callback_function # 还是行注释

七、分支和循环:

1)不要写成一行,如:

if not flg: pass 和 for i in xrange(10): print i都不是好代码,应写成

if not flg:

pass

fori in xrange(10):

print i

2)条件表达式的编写应该足够 pythonic,如以下形式的条件表达式是拙劣的:

if len(alist) != 0: do_something()

if alist != []: do_something()

if s != “”: do_something()

if var != None: do_something()

if var != False: do_something()

上面的语句应该写成:

if seq: do_something() # 注意,这里命名也更改了

if var: do_something()

3)用得着的时候多使用循环语句的 else 分句,以简化代码。

Try-except语句:

如需使用try-except语句,遵循以下格式:

try:

return True

except:

logger.eception(‘assssss’)

return False

fllay{

八、禁用语句:

在robotFramework框架中使用的自定义编写的脚本时,禁止使用sys.exit(0)语句

七、已有代码与第三方模块:

1)对于项目中已有的代码,可能因为历史遗留原因不符合本规范,应当看作特例,允许存在;但不应在新的代码中延续旧的风格。

2)对于第三方模块,可能不符合本规范,也应看作特例,允许存在;但不应在新的代码中使用第三方模块的风格。

九、自动化测试代码开发规则

自动化用例开发我们还需遵守如下规则;

1.每次开发自动化用例前,需先从svn上update以保证为最新的工程项目.要上传代码,必须保证本地调试通过.Case包上传,先使用”清理孤立的用例文件”功能清理无效用例ini文件,再用”同步用例工程”界面操作,保证上传的case必须为最新。自动化代码需做codereview.

2.Logic开发保证run()方法结构如下:

public void run() throws Throwable {

// 步骤一:取得被测试程序引用

// 步骤二:获取用例用到的变量数据

// 步骤三:得到需要用到的AW的实例

// 步骤四:调用方法

}

3.日志/打印信息使用已封装好的Log4J方法,如下例:

private static Logger fLogger = Logger.getLogger(EPMSUtils.class);

4.每个操作点后要加上结果判断,例子如下:

getResult().addChkPnt("创建所有用户组权限用户", TestResult.PASSED, "Create Successfully");

5.对确认的对象等待使用$object.waitForExist();只有在不确认或者认为受机器性能影响处的思考时间使用RationalTestScript.sleep().

6.对可抽象的Selenium方法写在com.tdtech.utils.SeleniumUtils 里面.公用界面AW写在com.tdtech.commonTask 包中.

7.对可抽象的界面AW方法都写对应的Utils类里面,且方法说明清晰易懂.如:

com.tdtech.epms.commonTask.EPMSUtils

com.tdtech.escs.commonTask.ESCSUtils

8.测试代码AW按照每个界面进行分包,包名清晰易懂.如:

com.tdtech.epms.epmsDailyOffice

且每个界面AW要有对应截图,方便界面操作查看以及java doc生成.

9.测试包命名都使用英文字母,按照业务流规则分类, 测试用例命名可直接使用BBT用例名,用例备注中填写此用例在TMSS上的用例ID.用例参数说明清晰明确.

10.各模块用例开发者也需要持续维护所有负责的用例.执行者需对失败用例进行初步分析,得出结论:软件控件变化,用例逻辑错误,用例代码问题.

python 代码格式规范脚本_Python编码规范相关推荐

  1. python代码规范准则_Python编码规范

    Python 编码规范 这篇文档改编自 Guido 最初的< Python 风格指南>一文,并从 < Barry's style guide >中添加了部分内容.在有冲突的地方 ...

  2. python什么时候用空格_python编码规范——空格的使用

    渣渣的Leetcode之旅(Python3)_8. 字符串转换整数 (atoi)(中等) 请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C ...

  3. python代码格式-Python 代码格式

    原标题:Python 代码格式 在格式方面与其他大众语言相差不大,但也有它独特之处,尤其是代码缩进.在其他的编程语言中,代码缩进大多是为了美观,程序.函数的开始结束都是由花括号来控制的.在Python ...

  4. python代码格式-pyhon代码设计格式指南

    一 缘由: 经常看到周围人写的代码,在大公司有规范,很多人不乱写代码,但是在很多小公司,很多程序员都是半路出家,也不喜欢读书学习,导致写出来的代码乱七八糟.今天拜读了python编程这本书,作者把py ...

  5. PEP 8 -- Python代码格式规则

    PEP 8 – Python代码格式规则 PEP: 8 标题: Python代码格式规则(Style Guide for Python Code) 作者: Guido van Rossum (guid ...

  6. 《规范》前端编码规范

    概述 本规范旨在为前端程序的开发者提供规范化最新的指导,可用于程序员个人编译环境以及研发团队集成环境等场合的代码规范化检查: 不管有多少人共同参与同一项目,一定要确保每一行代码都像是同一个人编写的: ...

  7. C#命名规范中文版/C#编码规范中文版

    C#命名规范中文版/C#编码规范中文版 示例 /******************************************************************** Descrip ...

  8. Python 代码实现哈夫曼编码

    一.哈夫曼编码是什么? 哈夫曼编码(Huffman Coding),又称霍夫曼编码,是一种编码方式,可变字长编码(VLC)的一种.Huffman于1952年提出一种编码方法,该方法完全依据字符出现概率 ...

  9. c++ doxygen 注释规范_[代码规范]Go语言编码规范指导

    本规范旨在为日常Go项目开发提供一个代码的规范指导,方便团队形成一个统一的代码风格,提高代码的可读性,规范性和统一性.本规范将从命名规范,注释规范,代码风格和 Go 语言提供的常用的工具这几个方面做一 ...

最新文章

  1. linux中如何查询端口被占用的情况
  2. 这个 “少年黑客”,用黑科技守护独居老人
  3. 基于Docker Compose搭建的Mysql8.0主从复制(1主3从,多主机)
  4. 中根遍历二叉查找树所得序列一定是有序序列_数据结构考研学习笔记(九)树、森林...
  5. Javascript远程加载框架 - JFO Remote Framework 1.0
  6. 宿主程序Crash与Lua是动态库还是静态库有关?
  7. [Android 5.1] 多用户管理UserManager相关整理
  8. 杭电计算机组成原理实践课 实验2 一位全加器构成的四位全加器
  9. 茂密林冠下实时语义SLAM的大规模自主飞行
  10. cad计算机绘注意事项,CAD制图的注意事项
  11. 字节跳动后端开发实习生一面凉经
  12. rk键盘快捷键快捷键不一致_为什么其他键盘语言的键盘快捷键和可访问性很少起作用...
  13. ffmpeg中vf与filter_complex的区别
  14. 《日语综合教程》第七册 第五課 みやこ人と都会人
  15. Ubuntu官方下载地址
  16. Android打包混淆压缩
  17. NYOJ 小珂的烦恼
  18. WebService客户端三种调用方式整理
  19. 【C语言进阶】很诡异的编译报错expected declaration or statement at end of input
  20. 昇腾应用营第二期-应用营-第二周-作业流程记录

热门文章

  1. 使用JDK 8将收藏转换为地图
  2. 春天重试,因为冬天来了
  3. 谷歌guava_Google Guava BiMaps
  4. openshift s2i_对Openshift上的Play Framework 2应用进行故障排除
  5. 存根类 测试代码 java_有关为旧版代码创建存根的更多信息–测试技术7
  6. 使用junit做其他事情
  7. 介绍JBoss BPM Suite安装程序
  8. 简而言之,JUnit:Hello World
  9. Jetty 9.1上的Java WebSockets(JSR-356)
  10. 弱,弱,最弱,利用专业参考来利用垃圾收集器