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)
--------------用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)
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()
这里的入门级的代码,用作熟悉appium的使用
但如果作为企业级的自动化工具,要采用框架,例如把公共函数、方法提炼出来。
没有轻轻松松就能拿高工资,必须有大力的付出,
没有写过大量代码的测试开发,是没有生产力的。
提高自身代码量。
使用bing.com搜索
用英文关键字搜索
尽量看原英文文档