最全整理,web自动化测试框架总结-实战案例,从0精通封装...

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

web自动化测试框架

1、设计思路
使用Page Object模式将页面定位和业务操作分开,分离测试对象(元素对象)和测试脚本(用例脚本),一个页面建一个对象类,提高用例的可维护性;

使用yaml管理页面空间元素和测试用例数据。例如一个页面元素发生变化时,不需要去修改代码,只需要在对应的页面元素yaml文件中修改即可。

以每个页面作为模块管理,随时组装,互不影响。

2、测试框架分层

最全整理,web自动化测试框架总结-实战案例,从0精通封装..._第1张图片

框架层:基础组件封装,支撑整个框架的流程执行及功能扩展;
用例层:根据用例场景构造test测试方法;
业务层:封装页面对象类,一个页面建立一个类,业务层基础基础层page类;
基础层:二次开发selenium的元素定位已经操作;

3、编写用例方法
例子:百度搜索测试场景

①需要新增百度搜索测试场景用例:
在testyaml目录下新增一个页面对象yaml文件,利用封装的yamlload方法将yaml文件中的dom元素读取出来,提供给封装页面对象类调用并定元素操作。

testinfo:
      - id: test_login001
        title: 登录百度网页测试
        info: 打开百度首页
testcase:
      - element_info: s-usersetting-top
        find_type: ID
        operate_type: click
        info: 打开登录对话框
      - element_info: userName
        find_type: ID
        operate_type: send_keys
        info: 输入用户名称
      - element_info: TANGRAM__PSP_11__password
        find_type: ID
        operate_type: send_keys
        info: 输入密码
      - element_info: TANGRAM__PSP_11__submit
        find_type: ID
        operate_type: click
        info: 单击登录按钮
 
check:
      - element_info: //*[@id="user"]/span[2]
        find_type: XPATH
        info: 检查用户是否登录

②在testdata目录下新增一个yaml文件提供给用例测试数据

-
  id: test_login001.1
  detail : 验证登录成功
  screenshot : phone_pawd_empty
  data:
    username: 13501198450
    password: Han520520
  check :
     - hhil833

③在page_obj目录编写百度搜索场景的页面对象类封装

testData = getyaml(setting.TEST_Element_YAML + '/' + 'baidu_login.yaml')
class baidu_login(Page):
 
    def  open_login(self,username,pwd):
        """
 
              :return:
              """
        dig_login_button_loc = (By.ID, testData.get_elementinfo(0))
        self.find_element(*dig_login_button_loc).click()
        sleep(1)
    def go_login(self,username,pwd):
        self.find_element(By.ID, testData.get_elementinfo(1)).send_keys(username)
        sleep(1)
        self.find_element(By.ID, testData.get_elementinfo(2)).send_keys(pwd)
        sleep(1)
        self.find_element(By.ID, testData.get_elementinfo(3)).click()
 
    def user_login(self, username, pwd):
        self.go_login(username,pwd)
        sleep(1)
        check = (By.ID, By.ID,testData.get_CheckElementinfo(0))
        return  self.find_element(*check).text

④在testcase目录编写测试用例文件,采用ddt数据驱动读取yaml测试数据源文件

@ddt.data(*testData)
def user_login_verify(self, username, password):
    """
           用户登录
           :param phone: 手机号
           :param password: 密码
           :return:
 
           """
 
    baidu_login(self.driver).user_login(username,password)
def test_login(self,datayaml):
    """
            登录测试
            :param datayaml: 加载login_data登录测试数据
            :return:
            """
    self.log.info("当前执行测试用例ID-> {0} ; 测试点-> {1}".format(datayaml['id'],datayaml['detail']))
    # c = self.user_login_verify(datayaml["username"],datayaml["password"])
    # log.info("检查点-> {0}".format(c))
    # self.assertEqual(c, datayaml['check'][0],
    #                  "成功登录,返回实际结果是->: {0}".format(c))

⑤通过多线程将驱动传给执行方法,并行开启多个浏览器执行测试

def run_case(self,function,name):
    thread_list=[]
    for i in range(1):
        appium_server = threading.Thread(target=function,args=(name,))
        thread_list.append(appium_server)
        for j in thread_list:
            j.start()
 
def run_casea(self):
    name = ["chrome", "chrome"]
    for i in name:
        self.run_case(self.test_baidu,i)

⑥操作元素封装

def get_element(self, find_type, element=""):
    # getdata = getyaml(file)
 
    # type = getdata.get_find_type(find_type_index)
    if find_type == "id" or find_type == "ID":
        print(1111111111111111111111)
        return self.driver.find_element_by_id(element)
    elif find_type == "xpath" or find_type == "XPATH":
        return self.driver.find_element_by_xpath(element)
    elif find_type == "name" or find_type == "NAME":
        return self.driver.find_element_by_name(element)
    else:
        raise Exception("错误!")
下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

最全整理,web自动化测试框架总结-实战案例,从0精通封装..._第2张图片

二、接口自动化项目实战

最全整理,web自动化测试框架总结-实战案例,从0精通封装..._第3张图片

三、Web自动化项目实战

最全整理,web自动化测试框架总结-实战案例,从0精通封装..._第4张图片

四、App自动化项目实战

最全整理,web自动化测试框架总结-实战案例,从0精通封装..._第5张图片

五、一线大厂简历

最全整理,web自动化测试框架总结-实战案例,从0精通封装..._第6张图片

六、测试开发DevOps体系

最全整理,web自动化测试框架总结-实战案例,从0精通封装..._第7张图片

七、常用自动化测试工具

最全整理,web自动化测试框架总结-实战案例,从0精通封装..._第8张图片

八、JMeter性能测试

最全整理,web自动化测试框架总结-实战案例,从0精通封装..._第9张图片

九、总结(尾部小惊喜)

只有经历过曲折和磨难,我们才能华丽地绽放;只有奋斗不止,我们才能创造人生的奇迹。坚持梦想,勇往直前,成功将成为你辛勤努力的最好见证!

只有在拼搏中才能发现更强大的自己,奋斗是铸就辉煌的阶梯。毅力和努力是成功的密码,不断超越自我,绽放属于你的光芒!相信自己,迈出坚定的步伐,无所不能!

只有在付出汗水的努力中,才能找到成功的奥秘;只有跨越困难的坎坷,才能到达胜利的彼岸;相信自己的能力,勇往直前,追逐梦想的道路上绝不放弃!

你可能感兴趣的:(软件测试,自动化测试,web自动化测试,软件测试,自动化测试,python自动化测试,web自动化测试,自动化测试框架,软件测试工程师,selenium)