在学习appium+python中 看到大佬学的代码在文件最后一段都会加上if name == “main”:,经查询资料后。了解到这句代码可以作为主函数作为程序的入口,但Python是一种解释型脚本语言,在执行之前不需要将所有代码先编译成中间代码,Python程序运行时是从模块顶行开始,逐行进行翻译执行,所以,最顶层(没有被缩进)的代码都会被执行,所以Python中并不需要一个统一的main()作为程序的入口。Python文件后缀为.py,此文件可以直接执行或者作为模块导入(import)。
在句子前面加上if,说明这是一个条件语句,__name__作为模块的内置变量,用于代指当前模块,__main__的意思是直接执行,而不是作为模块导入。
在实际的自动化脚本开发中,首先是确保单个用例(脚本)执行成功,然后才执行所有的用例,而这时候 if name == “main”:这条语句的作用就体现出来了,在if name == “main”:语句后面编写执行用的语句,例如:
if __name__ == "__main__":
suite = unittest.TestLoader().loadTestsFromTestCase(XXX) #xxx为模块名
unittest.TextTestRunner(verbosity=2).run(suite)
或
if __name__ == "__main__":
unittest.main()
一旦这个脚本运行稳定之后,就需要将该用例添加到测试用例集中,当执行用例测试集脚时,单个脚本就作为模块被调用;这时候if name == “main”:后面的内容将不会被执行。