• 学习【python 测试开发】


    https://ke.qq.com/course/263945#tuin=107a3c8a

    https://testerhome.com/topics/11327

    python版本:2.7.*

    第一节

    python开发速度快,是因为开源模块多,我们站在了巨人的肩膀上,所以在实现某个功能的时候,先去python的仓库里看是否已实现。
    开源仓库 http://pypi.python.org/pypi

    GUI:指可视化图形工具

    如果用python做性能测试,建议用工具有:Locust

     

    python也可对java、cc++代码进行单元测试

     CSDN的登录操作,需要带‘lt’的值:

     

    遇到的问题及解决办法:

    1. ImportError: No module named 'requests'

    https://www.baidu.com/link?url=oPgkXcZT5bticBF8uBDbKNtmkw6oHD8HlJ9K349MgNU7zPFSxF7ragT4Dk6mId41FLCaiZPExomWp5aX7aRVZ_&wd=&eqid=ba2d8ab700004b10000000065a548587

    pip 安装中:

    第三方库安装后,会在该目录下,也可查看修改

    http://blog.csdn.net/huangzhang_123/article/details/64905767     python request使用介绍

    python request模块通过模拟用户访问web网站,实际运用到Html的post,get的方法实现网站互动。

    首先要找到post网址 
    打开网页->按F12(找到网络(火狐为例))->随意输入帐号密码->点击登录 

    按照上面的方法,获得CSDN登录按钮的form提交网址:

    2.post请求似乎不成功,不知道header中User-Agent和accept是否正确,未解决???

    #!/usr/bin/env python
    #coding=utf-8
    
    import requests
    import sys
    
    login_home_url="https://passport.csdn.net/account/login?ref=toolbar"
    #创建一个session实例,session能记录你的登录账号信息(因为http是短链接,无法记录cookie)
    # 之前的操作都是基于同一个session进行的,保持会话的有效性
    web_sessions= requests.Session()
    #打开登录页面
    LoginPage = web_sessions.get(login_home_url)
    print("line14")
    # 获取响应的内容,以文本格式
    print(LoginPage.text)
    #获取当前页面上的元素:元素ltexecution的值
    lt_sting = LoginPage.text[LoginPage.text.find('name="lt"'): LoginPage.text.find("/>",LoginPage.text.find('name="lt"'))]
    print("lt_sting: ",lt_sting)
    print("*"*30)
    lt =  lt_sting[lt_sting.find("LT"):-2]
    print("lt: ",lt)
    exe_sting = LoginPage.text[LoginPage.text.find('name="execution"'): LoginPage.text.find("/>",LoginPage.text.find('name="execution"'))]
    print("exe_sting: ",exe_sting)
    execution =exe_sting[exe_sting.rfind('="')+2:-2]
    print("execution: ",execution)
    
    
    #提交的用户信息、submit的网站
    login_url = "https://passport.csdn.net/account/verify"
    userData ={"username":"…………@qq.com","password":"qa……","lt":lt,"execution":execution,"_eventId":"submit"}
    #火狐浏览器User-Agent设置
    headerstr= {"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0","Accept": "text/html, application/xhtml+xml, */*"}
    #提交post请求  
    login_response = web_sessions.post(login_url,data=userData,headers=headerstr)
    print(login_response.text)  #该post请求后响应的结果,不满足预期,待解决。。》》》》
    
    
    # comment_url = "http://blog.csdn.net/fromsuny_smile/article/details/79014217"
    # comment_headers= {"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0","Accept": "*/*"}
    # comment_payload ={"commentid":"","content":u"很好啦","replyId":""}
    # comment_response = web_sessions.post(comment_url,data = comment_payload, headers =comment_headers)
    # print(comment_response.text)
    View Code

     --------------用appium和selenium进行用户操作的模拟,代码如下,如果有基础,很容易看懂的

    appium登录豆瓣账号如下:

    #!/usr/bin/env python
    #coding=utf-8
    
    from appium import webdriver
    import time,sys
    
    reload(sys)
    sys.setdefaultencoding('utf-8')
    
    usename="xxx"
    passwd="xxx"
    sleep_time =2
    
    desired_caps = {}
    desired_caps['platformName'] = 'Android'
    desired_caps['platformVersion'] = '6.0'
    desired_caps['deviceName'] = 'Android Emulator'
    #desired_caps['app'] = r"D:studycy	rainingcebacodesrcappiumdouban_117.apk"
    desired_caps['appPackage'] = 'com.douban.frodo'
    desired_caps['appActivity'] = '.MainActivity'
    
    driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
    
    driver.find_element_by_android_uiautomator('new UiSelector().text("我的")').click()
    
    time.sleep(sleep_time)
    #driver.find_element_by_android_uiautomator('new Uiseletor().resourceId("com.douban.frodo:id/title").textContains(u"我的")').click()
    driver.find_element_by_id("com.douban.frodo:id/unlongin_name").click()
    time.sleep(sleep_time)
    
    usename_element = driver.find_element_by_id("com.douban.frodo:id/input_user_name")
    usename_element.clear()
    usename_element.send_keys(usename)
    
    password_element = driver.find_element_by_id("com.douban.frodo:id/input_password")
    password_element.clear()
    password_element.send_keys(passwd)
    
    driver.find_element_by_id("com.douban.frodo:id/sign_in_douban").click()
    time.sleep(sleep_time)
    appium+python

    selenium登录微博如下:

    #!/usr/bin/env python
    # coding=utf-8
    
    from selenium import webdriver
    import unittest, time, re
    
    
    class WeiboTestCase(unittest.TestCase):
        def setUp(self):
            print "2222"
            self.driver = webdriver.Chrome()
            self.driver.implicitly_wait(30)
            self.verificationErrors = []
            self.accept_next_alert = True
    
        def test_untitled_test_case(self):
            driver = self.driver
            print "i ma here"
            driver.get("https://weibo.com/login.php")
            driver.find_element_by_id("loginname").click()
            driver.find_element_by_id("loginname").click()
            driver.find_element_by_id("loginname").clear()
            driver.find_element_by_id("loginname").send_keys("xxxxx")
            driver.find_element_by_name("password").clear()
            driver.find_element_by_name("password").send_keys("xxxx")
            driver.find_element_by_id("login_form_savestate").click()
            driver.find_element_by_xpath("//div[@id='pl_login_form']/div/div[3]/div[6]/a").click()
            driver.find_element_by_xpath("//textarea[@name='']").clear()
            driver.find_element_by_xpath("//textarea[@name='']").send_keys("Welcome to learn Python")
            driver.find_element_by_link_text(u"发布").click()
    
        def tearDown(self):
            self.driver.quit()
            self.assertEqual([], self.verificationErrors)
    
    
    if __name__ == "__main__":
        print "11111"
        unittest.main()
    selenium登录微博

    这里的入门级的代码,用作熟悉appium的使用
    但如果作为企业级的自动化工具,要采用框架,例如把公共函数、方法提炼出来。


    没有轻轻松松就能拿高工资,必须有大力的付出,
    没有写过大量代码的测试开发,是没有生产力的。
    提高自身代码量。

    使用bing.com搜索
    用英文关键字搜索
    尽量看原英文文档

    -----------------------------------------Have a good day!---------------------------------------------------------------------------------------------------
  • 相关阅读:
    NOI2018 退役记
    APIO2018 被屠记
    CTSC2018 被屠记
    SNOI2018 退役记
    O(1) long long a*b%p
    prufer编码
    杜教筛
    GCC卡常
    NOIP2017滚粗记
    UVA 10763 Foreign Exchange
  • 原文地址:https://www.cnblogs.com/ww-xiaowei/p/8136996.html
Copyright © 2020-2023  润新知