项目自动化day1

第一天
1、请用自己的语言简要描述一下面向过程编程和面向对象编程的特点
1.1、如果想实现一个数据库的查询操作,用面向过程编程如何实现,用面向对象编程如何实现,写出代码
1.2、利用上述封装的数据库类任意实现几个mysql的查询操作
1.3、思考如何实现mysql的增删改SQL操作?
  增删改没有数据返回,如何判断成功了(用try做错误捕捉,没有捕捉到错误则表示成功了,否则失败,代码如何实现?)
2、python的类中__init__ 函数称为什么函数,什么时候该函数会被执行,该函数如果有参数应该怎么传入?
3、python中的成员变量的作用域是什么,和函数内部的局部变量的区别是什么
4、类、对象、实例化分别是什么意思?
4、if __name__ == "__main__" 起到什么作用?
5、请用自己的语言简要描述一下Page Object(页面对象)在自动化中的实现思路,可以结合Login类描述

6、给下列代码添加注释说明其作用:

 1  class Login():
 2     def __init__(self, url):  #这个是...函数,有一个url作为传入参数  构造函数
 3       self.url = url      #这行代码将私有变量url赋值给了......变量:self.url
 4     def open(self):      #这个函数实现的作用是:......打开浏览器
 5       ......
 6     def close(self):    #这个函数实现的作用是:......关闭浏览器
 7       ......
 8     def login(self, user, pwd):  #这个函数实现的作用是:......,两个参数分别传入...和...  登录,用户名和密码
 9       ......
10     def login_v(self, expStat, expInfo):  #这个函数实现的作用是:......,两个参数分别意思是:......验证登录是否符合预期,expStat表示期望登录成功还是失败,expStat表示无论成功失败的页面信息,从而可以和实际对比
11         ......                       #expStat: True:期望登录成功;
12                          #expInfo:if 期望登录成功,则为成功后页面应该出现的用户名;else 为登录验证失败,返回期望和实际对比 
13                          #expStat:期望登录失败 
14                          #expInfo: if 期望登录失败,则失败后页面应该出现提示失败信息;else 为登录失败信息不符合预期,返回期望和实际对
15 
16  if __name__=="__main__":   #什么时候__name__变量会等于__main__?  直接运行时__name__ = __main__ , 作为模块(也就是库)被导入 __name__ !=__main__
17     x = Login("http://localhost:80/ranzhi/www")  #这行代码实现了...,得到x变量是... 传入参数url,变量是Login类的对象
18     x.open() #这行代码调用了......, 实现了......功能操作  调用open(),实现了打开浏览器并指定url
19     x.login("admin","123456") #这行代码调用了......并传入....和....作为参数, 实现了......功能  调用login(),传入admin和123456作为参数,实现了登录功能
20     x.login_v(True, "admin") ##这行代码调用了......, 实现了......功能,传入 TRUE表示......,"admin"是......调用login_v,实现验证登录,TRUE表示期望登录成功,“admin”是期待登录成功后页面会出现的用户名

7、按照Selenium课程中的方法写一个单元测试类:LoginCases,并调用Login类实现几个登录用例:

 1 import unittest
 2 from pages.loginPage import Login
 3 class LoginCases(unittest.TestCase):
 4   # setUpClass方法是所有测试用例前调用的方法
 5   @classmethod #类方法(class method)的定义
 6   def setUpClass(self):
 7     print("测试开始")
 8     self.lg = Login(""http://localhost:8090/)
 9   # tearDownClass方法是执行完所有测试后调用的方法
10   @classmethod
11   def tearDownClass(self):
12     print('测试结束')
13   ## 用例1(务必以test开头)
14   def test_01(self):
15   #第一个测试用例
16   #用例2
17   def test_02(self):

 


#第二个测试用例
8、将上课的代码手工实现一遍

原文地址:https://www.cnblogs.com/lgmeng/p/13733289.html